]> sourceware.org Git - systemtap.git/log
systemtap.git
8 years agostapio main loop: always time out on pselect()
Frank Ch. Eigler [Wed, 23 Mar 2016 22:02:15 +0000 (18:02 -0400)]
stapio main loop: always time out on pselect()

The main thread's pselect() call must now get a timeout setting too,
because it is responsible for orderly shutdown of the stap module in
case of interrupts.  Without a polling timeout, the pselect() can just
sit there, with other reader threads happily continuing their work,
as though the ^C never took effect.

8 years agoFix staprun compile error when HAVE_MONITOR_LIBS isn't defined.
David Smith [Wed, 23 Mar 2016 20:44:10 +0000 (15:44 -0500)]
Fix staprun compile error when HAVE_MONITOR_LIBS isn't defined.

* staprun/common.c (monitor_winch): Add empty function when
  HAVE_MONITOR_LIBS isn't defined, to make the compiler happy. This is
  necessary since the function's address is used in setup_main_signals().
* staprun/staprun.h: When HAVE_MONITOR_LIBS isn't defined, change
  monitor_winch() from an inline function to a declaration.

8 years agoAvoid "make distclean" removing removing various man pages
William Cohen [Wed, 23 Mar 2016 20:10:17 +0000 (16:10 -0400)]
Avoid "make distclean" removing removing various man pages

The man pages are not generated by the regular "make". They are now
generated using a special step and are now part of the sources.  The
"make distclean" should not remove these prebuilt pages.

8 years agoRHBZ1320691: correct path to /sbin/new-kernel-pkg
Frank Ch. Eigler [Wed, 23 Mar 2016 18:24:15 +0000 (14:24 -0400)]
RHBZ1320691: correct path to /sbin/new-kernel-pkg

This name works on older distros as well as /usr-move ones.

8 years agotapset: add ctime() 0-argument overload
Frank Ch. Eigler [Wed, 23 Mar 2016 17:56:50 +0000 (13:56 -0400)]
tapset: add ctime() 0-argument overload

8 years agofix monitor mode: output was being limited to first n rows
Felix Lu [Wed, 23 Mar 2016 17:40:28 +0000 (13:40 -0400)]
fix monitor mode: output was being limited to first n rows

8 years agomonitor mode: staprun revamp
Frank Ch. Eigler [Wed, 23 Mar 2016 14:48:28 +0000 (10:48 -0400)]
monitor mode: staprun revamp

A group of changes for usability & stability of the staprun side of
--monitor mode.  The gist of it is to let staprun persist awhile after
a script exits (whether interactively commanded with 'q', or with the
script exiting due to an exit/error), so that its outputs can be seen.

* monitor.c (monitor_state): Add new "exited" and "exited_help" states.
  (monitor_render): Remove code that reads input from module.
  Support exited_help subset text.
  (monitor_remember_output_line): New utility function to strndup
  module output lines into our circular buffer.
  (monitor_input): Revamp logic to use read(2) syscalls instead of
  temporary fdopen() FILEs to read from module-output pipe, for
  several reasons.
  (monitor_exited): New function to enter exited state.
* relay.c (reader_thread): Use write(2) loop when feeding output
  pipe/file, in case it gets full.
  (init_relayfs): Drop F_SETPIPE_SZ; it is not needed with write loop
  here and proper nonblocking read on other side.
* mainloop.c (signal_thread): Keep it running after each signal, just
  in case a ^C is repeated.  Encode SIGQUIT with a set to 'load_only'
  instead of pending_interrupts count.
  (stp_main_loop): Treat several startup-time errors as worthy of
  stap module removal/cleanup rather than detaching.  Within main
  loop proper, call cleanup_and_exit upon pending_interrupts, as
  the single standard spot where a stap module shutdown from any
  cause should come.  Redirect warning/error messages to monitor
  output buffer.  Notify monitor code of received STP_EXIT message.
* staprun.h: Provide inline-void stub functions for the !MONITOR_LIBS
  case.

8 years agoAdd logging to systemtap.base/strftime.exp.
David Smith [Tue, 22 Mar 2016 16:22:31 +0000 (11:22 -0500)]
Add logging to systemtap.base/strftime.exp.

* testsuite/systemtap.base/strftime.exp: Add logging so that we can better
  see what is going on.

8 years agoAdd some missing documentation
Felix Lu [Tue, 22 Mar 2016 13:54:54 +0000 (09:54 -0400)]
Add some missing documentation

Add "private" keyword in stapref and use of "next" in functions.

8 years agoFix PR17393 by improving the way we execute "system" commands.
David Smith [Mon, 21 Mar 2016 22:08:59 +0000 (17:08 -0500)]
Fix PR17393 by improving the way we execute "system" commands.

* staprun/common.c (open_cloexec): New function.
  (openat_cloexec): Ditto.
  (closefrom): ditto.
* staprun/staprun.h: Add prototypes for new functions.
* staprun/ctl.c (init_ctl_channel): Before trying to open the control
  channel, make sure it isn't open already. Use openat_cloexec() and
  open_cloexec() when opening the control channel. Remove unneeded call to
  set_clexec().
* staprun/relay.c (open_outfile): Use open_cloexec(). Remove unneeded call
  to set_clexec().
  (init_relayfs): Ditto.
* staprun/relay_old.c (open_relayfs_files): Ditto.
  (init_oldrelayfs): Ditto.
* staprun/mainloop.c (start_cmd): Add comment explaining the closefrom()
  isn't needed here.
  (system_cmd): Wait until the child has closed everything (by calling
  closefrom) before returning.
* staprun/staprun.c (term_signal_handler): Remove unneeded call to
  close_ctl_channel(), since remove_module() now calls it.

8 years agoMonitor mode: clamp probe list scrolling
Felix Lu [Mon, 21 Mar 2016 20:31:07 +0000 (16:31 -0400)]
Monitor mode: clamp probe list scrolling

Previously, the probe list could be scrolled beyond the number of probes
available and display an empty list. This also made it harder to scroll
up. Also, the number of script probes is now extracted using the json list.

8 years agoMonitor mode: display number of script probes
Felix Lu [Mon, 21 Mar 2016 14:56:42 +0000 (10:56 -0400)]
Monitor mode: display number of script probes

8 years agoRemove monitor mode global mangling
Felix Lu [Mon, 21 Mar 2016 14:13:27 +0000 (10:13 -0400)]
Remove monitor mode global mangling

Commit 87103d2b32ea873721 does not mangle variable names
during the search so the synthetic monitor_enabled variables could
not be found. Those synthetic variables are now not mangled to
allow them to be found.

8 years agomonitor mode: add 'q' keystroke to quit
Frank Ch. Eigler [Sun, 20 Mar 2016 23:18:49 +0000 (19:18 -0400)]
monitor mode: add 'q' keystroke to quit

It'll be nice to have a sequence other than ^C to cause an exit, so
that e.g. we can review output / diagnostics after the script quit.
Switching to 'h' to flip between help screen and normal mode, to avoid
accidental 'q'.

8 years agomonitor mode: deconflict with private global mangling
Frank Ch. Eigler [Sun, 20 Mar 2016 22:22:01 +0000 (18:22 -0400)]
monitor mode: deconflict with private global mangling

The synthesized probe body for monitor mode control needs to refer to
globals that may be declared private inside a tapset, in order to
clear them.  It needs to pierce the mangling-based name-hiding, so
that when the synthetic fragment is symbol-resolved, it will find the
mangled private globals to manipulate.  This is implemented by an
optional mode-flag in the symresolution_info class to suppress
global-mangling.

The test script was:

   stap --monitor -p4 -e 'probe nd_syscall.* {}' -v

8 years agotranslator: PR13283 redux, optimize string comparison again
Frank Ch. Eigler [Sun, 20 Mar 2016 22:20:49 +0000 (18:20 -0400)]
translator: PR13283 redux, optimize string comparison again

With the function-overloading machinery now assuring that function
calls translate to full temporaries to hold return values, we no
longer need to make yet another copy just to evaluate string
comparisons.

8 years agoPR13283: make strcmp test case run in -u mode also
Frank Ch. Eigler [Sun, 20 Mar 2016 22:20:16 +0000 (18:20 -0400)]
PR13283: make strcmp test case run in -u mode also

8 years agoprocfs write probe: optimize with /* stable */
Frank Ch. Eigler [Sun, 20 Mar 2016 13:43:18 +0000 (09:43 -0400)]
procfs write probe: optimize with /* stable */

The synthetic ...procfs_value_get function used in procfs().write
probes should be considered stable, so its calls can be optimized.

8 years agotranslate.cxx emit_global_param: skip synthetic vars
Frank Ch. Eigler [Sun, 20 Mar 2016 13:42:23 +0000 (09:42 -0400)]
translate.cxx emit_global_param: skip synthetic vars

module-param capability for synthetic globals (such as --monitor
mode enable flags) is inappropriate.

8 years agoNEWS: mark --interactive and --monitor experimental
Frank Ch. Eigler [Sat, 19 Mar 2016 18:01:55 +0000 (14:01 -0400)]
NEWS: mark --interactive and --monitor experimental

8 years agoPR19847: in interactive mode, clear pending_interrupts at every prompt
Frank Ch. Eigler [Sat, 19 Mar 2016 17:52:12 +0000 (13:52 -0400)]
PR19847: in interactive mode, clear pending_interrupts at every prompt

... otherwise we remember previous ^C's that have already been
handled.

8 years agoIncrease monitor pipe size.
Felix Lu [Fri, 18 Mar 2016 20:46:53 +0000 (16:46 -0400)]
Increase monitor pipe size.

The default pipe size is not able to handle large volumes.

* configure.ac: Check for F_SETPIPE_SZ macro declaration.
* staprun/relay.c: Set pipe size.

8 years agoAdd some monitor mode improvements.
Felix Lu [Fri, 18 Mar 2016 18:11:05 +0000 (14:11 -0400)]
Add some monitor mode improvements.

Added an option to pause and resume the script while running to
allow the user to review the output. Previously, a synthetic probe
was being displayed in the probe list, this is now removed.

* elaborate.cxx:
  - monitor_mode_write: skip generating probe point
    condition for synthetic probes. Add command to resume
    and pause all probes.
  - semantic_pass: call monitor_mode_{read, write} in init
* staprun/monitor.c: Bind keys for pause and resume.

8 years agoconfigury: regenerate with autoconf 1.15
Frank Ch. Eigler [Fri, 18 Mar 2016 16:19:20 +0000 (12:19 -0400)]
configury: regenerate with autoconf 1.15

An older RHEL host complained that the /missing script was too old.
Regenerated the lot with % automake -a -c -f

8 years agoGet rid of unused return value warning
Felix Lu [Fri, 18 Mar 2016 16:09:48 +0000 (12:09 -0400)]
Get rid of unused return value warning

Casting to (void) doesn't suppress unused return value in GCC.

8 years agoPR19802: hashbench.stp
Frank Ch. Eigler [Fri, 18 Mar 2016 01:24:50 +0000 (21:24 -0400)]
PR19802: hashbench.stp

Rework into the beginning of a hash benchmark suite.
The first test is for plotting 1/2/3-d hash value distributions,
with a bunch of modifiable parameters (use stap "-G param=value").

8 years agoPR19802 benchmark program
Ken Raeburn [Fri, 18 Mar 2016 00:01:37 +0000 (20:01 -0400)]
PR19802 benchmark program

8 years agostap dyninst: allow -B option to pass CFLAGS
Frank Ch. Eigler [Thu, 17 Mar 2016 20:19:21 +0000 (16:19 -0400)]
stap dyninst: allow -B option to pass CFLAGS

Formerly, -B (session.kbuildflags) was only used during runtime=kernel
builds.  Now it can be used to pass CFLAGS to the compiler run that
builds the generated dyninst-bound stap_FOO.so shared library.

8 years agodyninst runtime: make ilog2 evaluable even with -O0
Frank Ch. Eigler [Thu, 17 Mar 2016 20:04:51 +0000 (16:04 -0400)]
dyninst runtime: make ilog2 evaluable even with -O0

While debugging a generated dyninst module, it became an obstacle that
the __builtin_constant_p-guarded ilog2() macro expression failed down
to a ____ilog2_NaN dummy function.  With -O0, that function is at least
referenced, thus blocking linkage.  We ditch the constant-p checking,
and provide an abort()ing fallback.

8 years agoarray_slicing test case: fix timeouts
Frank Ch. Eigler [Thu, 17 Mar 2016 20:03:48 +0000 (16:03 -0400)]
array_slicing test case: fix timeouts

Many tests used probe begin {} without an exit() inside,
so naturally timed out.  Switched them to probe oneshot {}.

8 years agoPR19802: inline murmurhash3 into map-gen.h
Frank Ch. Eigler [Thu, 17 Mar 2016 19:25:19 +0000 (15:25 -0400)]
PR19802: inline murmurhash3 into map-gen.h

Instead of calling into the distributed murmurhash3 function, break it
up so that the map-gen.h hash function inlines it.  Each index
(integer or string) is mixed into the hash naturally as though it were
copied into one large contiguous block.

The results show very good dispersion when compared with the kernel
hash_64() function.  Evaluating the hash function is somewhat slower
(30%-ish).  (Dumbing it down a little bit was attempted a couple of
ways; none were superior enough in dispersion/performance.)

8 years agoruntime: map streamlining
Frank Ch. Eigler [Wed, 16 Mar 2016 22:08:13 +0000 (18:08 -0400)]
runtime: map streamlining

Drop all MAP_*LOCK code, which has never been compiled in.  Drop also
all map-pointer==NULL tests, since the generated code ensures
that never happens.

8 years agoPR19802: make associate-array hash tables sized accordingly to each map's maxnum
Frank Ch. Eigler [Wed, 16 Mar 2016 15:14:40 +0000 (11:14 -0400)]
PR19802: make associate-array hash tables sized accordingly to each map's maxnum

Add a MAPHASHBIAS parameter to tune space-vs-time tradeoff.

8 years agoPR19802 prototype: switch to murmurhash3
Frank Ch. Eigler [Mon, 14 Mar 2016 01:33:51 +0000 (21:33 -0400)]
PR19802 prototype: switch to murmurhash3

Instead of the kernel's hash_64 and our poor multi-index hash-mixing
function, use a minutely adapted version of Austin Appleby's 32-bit
MurmurHash3 computation.  It spreads keys and especially vectors of
keys much better.

8 years agoPR13608 testsuite: fix typo in [proc setup_server]
Frank Ch. Eigler [Fri, 18 Mar 2016 14:45:46 +0000 (10:45 -0400)]
PR13608 testsuite: fix typo in [proc setup_server]

8 years agoRHBZ1319085: hack for s390 udelay_simple()
Frank Ch. Eigler [Fri, 18 Mar 2016 15:56:01 +0000 (11:56 -0400)]
RHBZ1319085: hack for s390 udelay_simple()

For a few brief s390 kernel builds, an exported udelay_simple()
is to be preferred to udelay().  Should have no impact anywhere
else.

8 years agoDon't use cleanup_and_exit() to exit monitor mode.
Felix Lu [Thu, 17 Mar 2016 20:39:00 +0000 (16:39 -0400)]
Don't use cleanup_and_exit() to exit monitor mode.

This usage was causing a kernel crash so we are forced
to use SIGINT in the meantime.

8 years agoDon't signal warning if script is exited immediately in monitor mode.
Felix Lu [Wed, 16 Mar 2016 13:44:35 +0000 (09:44 -0400)]
Don't signal warning if script is exited immediately in monitor mode.

8 years agoFix PR19812 by translating vpid to host namespace pid.
Martin Cermak [Wed, 16 Mar 2016 13:26:10 +0000 (14:26 +0100)]
Fix PR19812 by translating vpid to host namespace pid.

Docker containers can use virtual pids, which need to get mapped to
host namespace pid in order to get the userspace probing working.

If the container is run with docker run --pid=host, then it uses
the host namespace pids and this translation is unnecessary.

8 years agoPR13608: poll checking if the stap server started
Abegail Jakop [Tue, 15 Mar 2016 20:08:20 +0000 (16:08 -0400)]
PR13608: poll checking if the stap server started

systemtap.exp: in proc setup_server, instead of sleeping for 1 second
between starting the server and checking if it started, which
sometimes fails on rhel7, wait and poll whether the stap server has
started.

8 years agoPR13608: test compile server request size options
Abegail Jakop [Tue, 8 Mar 2016 22:50:34 +0000 (17:50 -0500)]
PR13608: test compile server request size options

test --max-request-size and --max-compressed-request options

8 years agoPR13608: fixed comments and docs to make more sense
Abegail Jakop [Tue, 8 Mar 2016 19:11:43 +0000 (14:11 -0500)]
PR13608: fixed comments and docs to make more sense

8 years agoPR13608: --max-compressed-request documentation
Abegail Jakop [Thu, 3 Mar 2016 17:52:18 +0000 (12:52 -0500)]
PR13608:  --max-compressed-request documentation

updated the man page and the stap-server command to list the
--max-compress-request size option.

8 years agoPR13608: remove extra log message
Abegail Jakop [Tue, 1 Mar 2016 23:01:49 +0000 (18:01 -0500)]
PR13608: remove extra log message

don't need to log the result of the unzip -Zt command anymore.

8 years agoPR13608: --max-compressed-request ## server option
Abegail Jakop [Tue, 1 Mar 2016 21:14:27 +0000 (16:14 -0500)]
PR13608: --max-compressed-request ## server option

add --max-compressed-request compile server option that takes a value
for the maximum compressed client request size allowed in bytes. The
default, if this option is not used is 5000 bytes.

8 years agoPR13608: perform client request size check earlier
Abegail Jakop [Tue, 1 Mar 2016 18:30:51 +0000 (13:30 -0500)]
PR13608: perform client request size check earlier

move the compressed client request size check from check_request_size()
to readDataFromSocket() which will check the expected request size
before the request transmits. Then rename check_request_size()
to be more specific, so check_uncompressed_request_size(). Default
max compressed request size if 5000 bytes.

8 years agoPR13608: add documentation for --max-request-size
Abegail Jakop [Thu, 25 Feb 2016 21:09:39 +0000 (16:09 -0500)]
PR13608: add documentation for --max-request-size

Update the stap-server man page and the stap-server command to
include information on the --max-request-size option.

8 years agoPR13608: add --max-request-size ## option for server
Abegail Jakop [Thu, 25 Feb 2016 20:28:33 +0000 (15:28 -0500)]
PR13608: add --max-request-size ## option for server

Add an option in the stap server to set the max (uncompressed)
request size in bytesreceived from the client. If it's not set,
the default max request size is 50KB. Then the max compressed
request size is set to be 10% of the max uncompressed size, making
the default 5KB.

8 years agoPR13608: check size of uncompressed client request
Abegail Jakop [Tue, 23 Feb 2016 23:13:37 +0000 (18:13 -0500)]
PR13608: check size of uncompressed client request

stap-serverd.cxx: using unzip, check if the client's request size is
reasonable, so between 0B and 100KB.

8 years agoPR13608: check client's zipped request size
Abegail Jakop [Tue, 23 Feb 2016 19:30:10 +0000 (14:30 -0500)]
PR13608: check client's zipped request size

stap-serverd.cxx: on the compile server, when receiving a client
request, check that the zipped request size is not too large (>5KB).

8 years agoRun update-syscalls-docs before update-docs
Felix Lu [Mon, 14 Mar 2016 18:12:37 +0000 (14:12 -0400)]
Run update-syscalls-docs before update-docs

8 years agoRename documentation update scripts for clarity
Felix Lu [Mon, 14 Mar 2016 17:46:58 +0000 (13:46 -0400)]
Rename documentation update scripts for clarity

The script names were confusing before this rename.

8 years agoAdd 32-bit compile fix in interactive.cxx.
David Smith [Mon, 14 Mar 2016 14:54:29 +0000 (09:54 -0500)]
Add 32-bit compile fix in interactive.cxx.

8 years agoPreserve the working directory within the test.
Martin Cermak [Mon, 14 Mar 2016 07:39:22 +0000 (08:39 +0100)]
Preserve the working directory within the test.

Test must not change the working directory.  Without this update,
when target_compile() failed, test finished with working directory
set to $tmpdir instead of $curdir breaking all subsequent tests:

=====
Running ./systemtap.base/utrace_syscall_args.exp ...
UNTESTED: 64_BIT_UTRACE_SYSCALL_ARGS
Running ./systemtap.base/valid_pid.exp ...
ERROR: ./systemtap.base/valid_pid.exp does not exist.
...
=====

8 years agoExit documentation generator script early on error.
Felix Lu [Fri, 11 Mar 2016 19:26:10 +0000 (14:26 -0500)]
Exit documentation generator script early on error.

8 years agoUpdate tapset documentation
Felix Lu [Fri, 11 Mar 2016 19:06:55 +0000 (14:06 -0500)]
Update tapset documentation

Some man pages are replaced by the function overloading changes.

8 years agoFixed PR19799 by making deleting from aggregate arrays more reliable.
David Smith [Fri, 11 Mar 2016 18:36:18 +0000 (12:36 -0600)]
Fixed PR19799 by making deleting from aggregate arrays more reliable.

* runtime/pmap-gen.c (_stp_pmap_del): Be sure to delete keys from all
  cpu's maps.
* runtime/map-gen.c (_stp_map_del_hash): New function.
* testsuite/systemtap.maps/agg_delete.exp: New test case.
* testsuite/systemtap.maps/agg_delete1.stp: Ditto.
* testsuite/systemtap.maps/agg_delete2.stp: Ditto.

8 years agoRemove duplicate entries for generated tapset cross references
Felix Lu [Fri, 11 Mar 2016 15:49:46 +0000 (10:49 -0500)]
Remove duplicate entries for generated tapset cross references

8 years agoFix some copy paste typos
Felix Lu [Fri, 11 Mar 2016 15:27:52 +0000 (10:27 -0500)]
Fix some copy paste typos

8 years agoThe -g flag was not added so the testcase failed
Felix Lu [Fri, 11 Mar 2016 14:20:32 +0000 (09:20 -0500)]
The -g flag was not added so the testcase failed

8 years agoAdd backwards compatible tapset functions following function overloading
Felix Lu [Thu, 10 Mar 2016 21:58:26 +0000 (16:58 -0500)]
Add backwards compatible tapset functions following function overloading
changes.

8 years agoUse function overloading in some tapset functions
Felix Lu [Wed, 9 Mar 2016 14:22:40 +0000 (09:22 -0500)]
Use function overloading in some tapset functions

Documentation for overloaded functions are now merged into
one entry. Some tapset functions are now simplified through
overloading. Instead of having new function names with suffixes
such as "2" or "pid" to indicate extra arguments, the functions
now seem to have optional arguments.

* doc/SystemTap_Tapset_Reference/overload.py: New script to resolve
documentation for overloaded functions.
* tapset/*: Rename some functions.
* testsuite/*: Rename functions in tests.

8 years agoexamples: tweak .meta files
Frank Ch. Eigler [Sat, 5 Mar 2016 01:03:14 +0000 (20:03 -0500)]
examples: tweak .meta files

Added some overlooked fun .meta's for jistone's old key*.stp examples;
removed unnecessarily-unique organizational keywords from other examples.

8 years agotapset: use @cast() with "kernel<...>" part for tcphdr
Frank Ch. Eigler [Fri, 4 Mar 2016 23:43:11 +0000 (18:43 -0500)]
tapset: use @cast() with "kernel<...>" part for tcphdr

This allows netfilter tcp probes to use the tcp.stp tapset functions
without debuginfo.

8 years agonew sample: network/who_sent_it
Frank Ch. Eigler [Fri, 4 Mar 2016 16:51:35 +0000 (11:51 -0500)]
new sample: network/who_sent_it

This traces threads sending out ip network traffic to given hosts and/or ports.

8 years agoPermit stap -G parameter values to contain .
Frank Ch. Eigler [Fri, 4 Mar 2016 16:49:59 +0000 (11:49 -0500)]
Permit stap -G parameter values to contain .

The kernel doesn't mind, and has no security implications,
so extend the -G var=value regexp slightly.

8 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
David Smith [Fri, 4 Mar 2016 15:44:00 +0000 (09:44 -0600)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

8 years agoFix PR19764: stap --tmpdir leaves useless tempdirs behind
Martin Cermak [Fri, 4 Mar 2016 15:43:10 +0000 (16:43 +0100)]
Fix PR19764: stap --tmpdir leaves useless tempdirs behind

Remove call to create_tmp_dir() from the main systemtap_session
constructor and call it slightly later, after the cmdline parsing
is finished.  Plus modify create_tmp_dir() so that it only creates
the tmpdir if --tmpdir has not been set on the cmdline.

8 years agoMake "monitor" mode working with "interactive" mode.
David Smith [Fri, 4 Mar 2016 15:42:34 +0000 (09:42 -0600)]
Make "monitor" mode working with "interactive" mode.

* interactive.cxx (forked_parse_pass): Make sure "monitor" mode is off
  while running the parser. Otherwise we can end up with multiple copies
  of the monitor synthetic probes.
  (forked_semantic_pass): Ditto.
  (interactive_mode): Make sure "monitor" mode is off while dumping probe
  types.

8 years agoMake utrace_syscall_args.exp pass when run on an NFS filesystem.
David Smith [Thu, 3 Mar 2016 19:58:56 +0000 (13:58 -0600)]
Make utrace_syscall_args.exp pass when run on an NFS filesystem.

* testsuite/systemtap.base/utrace_syscall_args.exp: Put all temporary
  files in a temporary directory and run the script from there. This makes
  the test pass when run from an NFS filesystem.

8 years agoMake sure the "dump" options can't be used with -i or --monitor.
David Smith [Thu, 3 Mar 2016 19:56:39 +0000 (13:56 -0600)]
Make sure the "dump" options can't be used with -i or --monitor.

* session.cxx (check_options): Make sure the dump options (-l/-L/--dump-*)
  can't be used with interactive mode (-i) or monitor mode (--monitor).
* testsuite/parseko/cmdline25.stp: New test.
* testsuite/parseko/cmdline26.stp: Ditto.

8 years agoUpdated testsuite/semok/thirtythree.stp for newer kernels.
David Smith [Thu, 3 Mar 2016 14:43:49 +0000 (08:43 -0600)]
Updated testsuite/semok/thirtythree.stp for newer kernels.

* testsuite/semok/thirtythree.stp: Updated for newer kernels. Kernel
  commit 1d798ca3f16437 removed the 'first_page' member of the 'page'
  struct.

8 years agoFixed PR19756 by updating tapset/linux/proc_mem.stp.
David Smith [Thu, 3 Mar 2016 14:35:55 +0000 (08:35 -0600)]
Fixed PR19756 by updating tapset/linux/proc_mem.stp.

* tapset/linux/proc_mem.stp (proc_mem_data): Updated for kernel commit
  8463833590, which reworked virtual memory accounting.
  (proc_mem_data_pid): Ditto.

8 years agotestsuite pyexample.py: make python2.6 compatible
Martin Cermak [Thu, 3 Mar 2016 07:46:43 +0000 (08:46 +0100)]
testsuite pyexample.py: make python2.6 compatible

8 years agoImprove test for STAP_NEXT macro
Felix Lu [Wed, 2 Mar 2016 17:38:22 +0000 (12:38 -0500)]
Improve test for STAP_NEXT macro

Check to make sure that STAP_NEXT returns immediately from function.

8 years agoIn interactive mode, run the user's script through -p2 after each change.
David Smith [Wed, 2 Mar 2016 19:27:53 +0000 (13:27 -0600)]
In interactive mode, run the user's script through -p2 after each change.

* interactive.cxx (auto_analyze_opt): Added new class to handle the
  "auto_analyze" option. If non-zero, the user's script is run through
  pass 2 after every command that modifies the script.
  (add_cmd::handler): Added logic to call forked_semantic_pass() if the
  auto_analyze option is set.
  (edit_cmd::handler): Ditto.
  (delete_cmd::handler): Ditto.
  (forked_semantic_pass): New function to run the user's script through
  pass 2.
  (interactive_mode): Add new "auto_analyze" option.

8 years agotestsuite celsius.py: make python2.6 compatible
Frank Ch. Eigler [Wed, 2 Mar 2016 18:52:59 +0000 (13:52 -0500)]
testsuite celsius.py: make python2.6 compatible

8 years agoFunction overloading embedded-C macro fix
Felix Lu [Wed, 2 Mar 2016 15:03:32 +0000 (10:03 -0500)]
Function overloading embedded-C macro fix

Branch to end label after setting next flag.
Add vim syntax highlighting for macro.

8 years agoPR18431: Add some tests and final fixes
Felix Lu [Tue, 1 Mar 2016 14:06:04 +0000 (09:06 -0500)]
PR18431: Add some tests and final fixes

* elaborate.cxx: typeresolution_info::visit_functioncall: Restore
  type variable on overload, prefix monitor mode function.
* parse.cxx: parser::do_parse_functiondecl: Improve exception message.
* translate.cxx: c_unparser::visit_functioncall:
  - Remove __label__
  - Emit gotos only if overloads present
* testsuite/systemtap.base/func_overload.exp: Test it.

8 years agoPR18431: Function overloading
Felix Lu [Tue, 23 Feb 2016 20:38:00 +0000 (15:38 -0500)]
PR18431: Function overloading

A functioncall may now have a variety of implementations
and have the selection happen during runtime. Overloading
by number of parameters during compile time is also
available.

* elaborate.cxx:
  - no_var_mutation_during_iteration_check::visit_functioncall:
    Adapt to referents list.
  - symresolution_info::visit_functioncall: Likewise + sort functioncalls.
  - symresolution_info::find_function -> find_functions: Likewise.
  - void_statement_reducer::visit_functioncall: Likewise.
  - duplicate_function_remover::visit_functioncall: Likewise.
  - autocast_expanding_visitor::resolve_functioncall: Likewise.
  - typeresolution_info::visit_arrindex: Likewise.
  - get_functionsig: Use unmangled name.
* elaborate.h: find_function -> find_functions.
* main.cxx: Set parser user_file indicator flag.
* parse.cxx: Parser user_file flag, accept function declaration
  priority label syntax, remove duplicate function name checking,
  allow next in functions.
* parse.h: pf_user_file flag.
* common_probe_context.h: New "next" flag.
* session.h: New overload_count map for overload name resolution.
* staptree.cxx:
  - functioncall::functioncall: Remove referent initializer list.
  - functiondecl::functiondecl: Initialize default function priority.
  - functioncall_traversing_visitor::visit_functioncall:
    Adapt to referents list.
  - deep_copy_visitor::visit_functioncall: Likewise.
* staptree.h:
  - functioncall: Now holds list of referents.
  - functiondecl: New priority value.
  - function_priority_order: New functor for sorting.
* tapset-method.cxx: Adapt to referents list.
* tapsets.cxx: Adapt to referents list.
* parseko/eleven.stp: Invalidated.
* parseko/nineteen.stp: Invalidated.
* parseko/private02.stp: Invalidated.
* semko/fifty.stpL Invalidated.
* systemtap.base/optim_arridx.exp: Make compatible with overloading.
* translate.cxx:
  - c_unparser: New fc_counter to generate functioncall end labels.
  - c_unparser::emit_function: Reset context next flag, output STAP_NEXT
    macro.
  - c_unparser::visit_next_statement: Set context next flag, allow next
    in functions.
  - c_unparser::visit_functioncall: Main overloading logic.
  - recursion_info::visit_functioncall: Adapt to referents list.

8 years agoThe interactive mode "delete" command now deletes line ranges.
David Smith [Tue, 1 Mar 2016 22:08:49 +0000 (16:08 -0600)]
The interactive mode "delete" command now deletes line ranges.

* interactive.cxx (delete_cmd::handler): Add the capability of deleting a
  range of script lines.

8 years agoIf we receive a Ctrl-d in interactive mode, ask if we should quit.
David Smith [Tue, 1 Mar 2016 21:17:13 +0000 (15:17 -0600)]
If we receive a Ctrl-d in interactive mode, ask if we should quit.

* interactive.cxx (interactive_mode): Treat Ctrl-d at the prompt like a
  "quit" command (but ask first).

8 years agoImprove the interactive mode "add" command by prompting for more input.
David Smith [Tue, 1 Mar 2016 19:34:59 +0000 (13:34 -0600)]
Improve the interactive mode "add" command by prompting for more input.

* interactive.cxx (add_cmd::handler): If the user doesn't enter a complete
  function or probe definition on the command line, keep prompting him to
  do so. We know he's finished when the definition can be parsed without
  an error.
  (forked_parse_pass): New function.

8 years agoHandle imbedded spaces in the interactive mode command "add".
David Smith [Tue, 1 Mar 2016 16:23:16 +0000 (10:23 -0600)]
Handle imbedded spaces in the interactive mode command "add".

* interactive.cxx (add_cmd::handler): Use the raw input instead of the
  tokenized input, to preserve embedded spaces.

8 years agoKeep the "add" interactive command from crashing when passed no input.
David Smith [Mon, 29 Feb 2016 22:08:38 +0000 (16:08 -0600)]
Keep the "add" interactive command from crashing when passed no input.

* interactive.cxx (add_cmd::handler): Don't try to add empty string to the
  script.

8 years agotapset: prints* macros for printing stats arrays
Frank Ch. Eigler [Mon, 29 Feb 2016 20:25:09 +0000 (15:25 -0500)]
tapset: prints* macros for printing stats arrays

Extend commit bb4c40b8ddce to arrays.

* tapset/print_stats.stpm: Add prints[1-9] macros.
* parse.cxx (parser::slurp_pp1_param): Also track [ ] nesting
  when slurping macro parameters, as commas might appear in there
  that need to be relayed rather than interpreted as macro-param
  separators.
* testsuite/systemtap.printf/printf_stats.*: New test.

8 years agonew macro @prints
Orivej Desh [Tue, 23 Feb 2016 16:16:39 +0000 (11:16 -0500)]
new macro @prints

8 years agoAdd a note about the new interactive mode to NEWS.
David Smith [Mon, 29 Feb 2016 17:32:06 +0000 (11:32 -0600)]
Add a note about the new interactive mode to NEWS.

8 years agoBZ1312458: report missing debuginfo rpms
Frank Ch. Eigler [Mon, 29 Feb 2016 17:04:26 +0000 (12:04 -0500)]
BZ1312458: report missing debuginfo rpms

At some point (commit 1f35f4db), we lost the call to the rpm_finder
missing_rpm_list_print() call at the end of pass2.  It's baa-aack.

8 years agoAdd multiarch testing to testsuite/systemtap.base/callee.exp.
David Smith [Fri, 26 Feb 2016 19:32:27 +0000 (13:32 -0600)]
Add multiarch testing to testsuite/systemtap.base/callee.exp.

* testsuite/systemtap.base/callee.exp: Revamp test case to test all
  supported executable sizes on multiarch systems. Standardize on a
  4-character indent.

8 years agoAdd some better process cleanup in the testsuite.
David Smith [Thu, 25 Feb 2016 16:57:44 +0000 (10:57 -0600)]
Add some better process cleanup in the testsuite.

* testsuite/systemtap.base/stmtvars.exp: Make sure each "spawn" is
  followed by "catch {close}; catch {wait}".
* testsuite/systemtap.context/args.tcl: Ditto.
* testsuite/systemtap.context/backtrace.tcl: Ditto.
* testsuite/systemtap.context/num_args.tcl: Ditto.
* testsuite/systemtap.context/pid.tcl: Ditto.
* testsuite/systemtap.context/symfileline.tcl: Ditto.

8 years agoFix the caller.exp testcase for ppc64.
David Smith [Thu, 25 Feb 2016 14:58:36 +0000 (08:58 -0600)]
Fix the caller.exp testcase for ppc64.

* testsuite/systemtap.base/caller.exp: On ppc64, expect system_call() as
  the caller, since vfs_write() can get inlined.

8 years agoFix the threadstacks.stp example and testcase for ppc64.
David Smith [Wed, 24 Feb 2016 22:10:16 +0000 (16:10 -0600)]
Fix the threadstacks.stp example and testcase for ppc64.

* testsuite/systemtap.examples/process/threadstacks.stp: Add ppc64 support
  by also probing "/lib*/*/libpthread.so.*", since RHEL7 ppc64 puts the
  pthread library in /lib64/power8/.
* testsuite/systemtap.base/pthread_stacks.exp: Choose the new stack size
  based on architecture, since 0x10000 is invalid for ppc64.

8 years agoUpdate 2 test cases to work on ppc64, which can inline vfs_{read,write}.
David Smith [Wed, 24 Feb 2016 19:02:55 +0000 (13:02 -0600)]
Update 2 test cases to work on ppc64, which can inline vfs_{read,write}.

* testsuite/systemtap.base/onoffprobe.stp: Switch from probing the return
  of vfs_write() (which can be inlined) to probing the return of
  syscall.write.
* testsuite/systemtap.base/listing_mode_sanity.exp: Make sure we use
  '.call' when listing kernel.function("vfs_read"), since on some kernels
  that function can be inlined.

8 years agoGet more passes in semok.exp and semko.exp on ppc64.
David Smith [Wed, 24 Feb 2016 17:14:41 +0000 (11:14 -0600)]
Get more passes in semok.exp and semko.exp on ppc64.

* dwflpp.cxx (build_kernel_blacklist): Add ppc64-specific
  include/asm/io-defs.h file to the blacklist.
* testsuite/systemtap.pass1-4/semko.exp: Make sure vfs_read() doesn't have
  an inlined version before running twentytwo.stp.
* testsuite/systemtap.pass1-4/semok.exp (dyninst_kfails): Check for plt
  probe support before running plt[12].stp.

8 years agoAlign man/cs content to commit 3d7e77590 (PR15775).
Martin Cermak [Wed, 24 Feb 2016 10:27:38 +0000 (11:27 +0100)]
Align man/cs content to commit 3d7e77590 (PR15775).

* man/cs/stap.1.in: Removed RELAY_{HOST,GUEST} mention.
* man/cs/systemtap.8.in: Ditto.

8 years agoPR19700: build fix on gentoo
Orivej Desh [Tue, 23 Feb 2016 19:57:28 +0000 (14:57 -0500)]
PR19700: build fix on gentoo

... where modified /bin/dash doesn't speak 'echo -n'.

8 years agoFix rawhide compile problems in aux_syscalls.stp.
David Smith [Tue, 23 Feb 2016 19:23:14 +0000 (13:23 -0600)]
Fix rawhide compile problems in aux_syscalls.stp.

* tapset/linux/aux_syscalls.stp (_stp_siginfo_u): Removed extra "break"
  statements that gcc version 6 complains about on rawhide.
  (_stp_compat_siginfo_u): Ditto.

8 years agoFix PR15775 by removing old relay host/guest functionality.
David Smith [Tue, 23 Feb 2016 18:58:16 +0000 (12:58 -0600)]
Fix PR15775 by removing old relay host/guest functionality.

* runtime/dyninst/print.c: Remove RELAY_{HOST,GUEST} functionality.
* runtime/linux/print.c: Ditto.
* runtime/print_flush.c: Ditto.
* runtime/transport/transport.c: Ditto.
* testsuite/systemtap.printf/sharedbuf.exp: Removed.
* man/stap.1.in: Removed RELAY_{HOST,GUEST} mention.
* man/systemtap.8.in: Ditto.

8 years agoAccept other error codes returned by socket syscall in socket.c syscall test
William Cohen [Thu, 18 Feb 2016 22:08:12 +0000 (17:08 -0500)]
Accept other error codes returned by socket syscall in socket.c syscall test

On aarch64 the last socket syscall in socket.c return EINVAL rather
than EPROTONOSUPPORT.  Adjust the test to be a bit more flexible.  An
error is an error.

This page took 0.062487 seconds and 5 git commands to generate.