]> sourceware.org Git - systemtap.git/log
systemtap.git
8 years agoPR20307: fix references to private global in tapset
Frank Ch. Eigler [Thu, 30 Jun 2016 16:08:07 +0000 (12:08 -0400)]
PR20307: fix references to private global in tapset

Previous code could not resolve a reference to a private global
(defined in a tapset) within a probe alias (from that same tapset).
We now try matching up the mangled name in addition to the plain one
in symresolution_info::find_var() when searching the
session.library_files[].globals.

8 years agoadd private keyword syntax highlighting
Felix Lu [Thu, 30 Jun 2016 15:08:18 +0000 (11:08 -0400)]
add private keyword syntax highlighting

8 years agoAvoid null pointer exception in the ioscheduler.elv_add_request probe.
Martin Cermak [Wed, 29 Jun 2016 17:03:11 +0000 (19:03 +0200)]
Avoid null pointer exception in the ioscheduler.elv_add_request probe.

This update makes the ioscheduler.elv_add_request probe gracefully handle
situation where $q->elevator is NULL (RHBZ1269062).

8 years agoPartial 20236 fix: Add user_TYPE_error functions that throw errors.
David Smith [Tue, 28 Jun 2016 15:12:25 +0000 (10:12 -0500)]
Partial 20236 fix: Add user_TYPE_error functions that throw errors.

* tapset/uconversions.stp: Add new functions 'user_TYPE_error()' (where
  TYPE is 'char', 'short', 'ushort', 'int', 'long', 'ulong', 'int8',
  'uint8', 'int16', 'uint16', 'int32', 'uint32', or 'int64'). These
  funtions thow an error if the value to be read isn't
  accessible. Reimplement 'user_TYPE()' and 'user_TYPE_warn()' functions
  in terms of user_TYPE_error() functions.
* tapset/linux/aux_syscalls.stp: Replace '__user_pointer' with
  'user_long_error'.
* testsuite/buildok/conversions-embedded.stp: Add tests for new functions.

8 years agoFix PR20281 by throwing an error if module has_path, which is empty.
Martin Cermak [Tue, 28 Jun 2016 14:34:22 +0000 (16:34 +0200)]
Fix PR20281 by throwing an error if module has_path, which is empty.

8 years agoDon't error on missing systemtap.sum
Martin Cermak [Tue, 28 Jun 2016 14:25:33 +0000 (16:25 +0200)]
Don't error on missing systemtap.sum

Don't report error if systemtap.sum isn't available to tail.
This was producing optically disturbing error message e.g. in case
the testsuite got run without dejagnu installed.

8 years agoUpdate the Czech version of manpages.
Martin Cermak [Tue, 28 Jun 2016 14:21:12 +0000 (16:21 +0200)]
Update the Czech version of manpages.

8 years agoImplement PR12748 by providing the syscall_table tapset files.
Martin Cermak [Tue, 28 Jun 2016 12:21:04 +0000 (14:21 +0200)]
Implement PR12748 by providing the syscall_table tapset files.

This patch provides architecture specific syscall tables, tapset
script functions syscall_num() and syscall_name() for acessing
them, test coverage, and a script for re-generating the syscall
tables based on strace source code.

* scripts/dump-syscalls.sh: Helper script for re-generating the
  syscall tables based on strace source code.
* tapset/linux/syscall_table.stp: Tapset script providing
  functions syscall_num() and syscall_name().
* tapset/linux/arm/syscall_num.stp: Syscall table.
* tapset/linux/arm64/syscall_num.stp: Ditto.
* tapset/linux/i386/syscall_num.stp: Ditto.
* tapset/linux/powerpc/syscall_num.stp: Ditto.
* tapset/linux/s390/syscall_num.stp: Ditto.
* tapset/linux/x86_64/syscall_num.stp: Ditto.
* testsuite/systemtap.syscall/sys.stp: A testsuite bit.
* testsuite/systemtap.syscall/syscall.exp: Ditto.
* testsuite/systemtap.syscall/tapset/syscall.stp: Ditto.

8 years agoFix PR20298 by updating the unprivileged_embedded_C.exp test case.
David Smith [Mon, 27 Jun 2016 17:57:05 +0000 (12:57 -0500)]
Fix PR20298 by updating the unprivileged_embedded_C.exp test case.

* testsuite/systemtap.unprivileged/unprivileged_embedded_C.exp: Several
  changes. Now only tests embedded C functions (since we can't really know
  if pure script functions are privileged or not). Look for tapset files
  in tapset/linux and in tapset/linux/${ARCH}. Now test all the embedded C
  functions intead of a subset. Add a "transitive" test, to make sure
  privileged embedded C functions can't be called by script functions.

8 years agoAdd the '-p4' options when exemplifying the module compilation
Nikolay Borisov [Mon, 27 Jun 2016 16:46:35 +0000 (19:46 +0300)]
Add the '-p4' options when exemplifying the module compilation

Currently the example command which supposedly should compile the
instrumentation module is missing the '-p4' option, meaning that
upon running it will compile and run the module. In order to make
the command more in sync with what this particular chapter is about,
add the -p4 options so that after running the command the user gets
to copy the resulting module.

Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
8 years agoRelocate ia64-specific _ia64_pipe[01] aux syscall functions.
David Smith [Mon, 27 Jun 2016 15:53:13 +0000 (10:53 -0500)]
Relocate ia64-specific _ia64_pipe[01] aux syscall functions.

* tapset/linux/syscalls2.stp (_ia64_pipe0): Move arch-specific function to
  tapset/linux/ia64/aux_syscalls.stp.
  (_ia64_pipe1): Ditto.
* tapset/linux/ia64/aux_syscalls.stp: Moved ia64-specific functions here.
* testsuite/systemtap.unprivileged/unprivileged_embedded_C.exp: Removed
  filtering of _ia64_pipe[01] functions.

8 years agoFix PR20286 by documenting that timer probes can get skipped.
David Smith [Tue, 21 Jun 2016 21:37:40 +0000 (16:37 -0500)]
Fix PR20286 by documenting that timer probes can get skipped.

* man/stapprobes.3stap: Document the fact that timer probes set to fire at
  a very high rate can get skipped if the time for them to run has passed.

8 years agoImprove error messages
Felix Lu [Tue, 21 Jun 2016 20:47:24 +0000 (16:47 -0400)]
Improve error messages

List the probe builders tried during resolution.

* dwflpp.cxx: Display error message when using wildcard for linenumber
  mode if no matches.
* elaborate.cxx:
  - match_node::find_and_build: Accumulate builders tried
    when no probes were resolved.
  - derive_probes: Display builders in error chain.
* elaborate.h: New name() for derived_probe_builder.

8 years agoFix PR20282 by updating loc2c-runtime.h for aarch64.
David Smith [Tue, 21 Jun 2016 18:17:15 +0000 (13:17 -0500)]
Fix PR20282 by updating loc2c-runtime.h for aarch64.

* runtime/linux/loc2c-runtime.h: Use BUILD_BUG() instead of
  __get_user_bad()/__put_user_bad() when available.

8 years agoConvert more embedded-C constants to use @const().
David Smith [Tue, 21 Jun 2016 17:31:30 +0000 (12:31 -0500)]
Convert more embedded-C constants to use @const().

* tapset/linux/dentry.stp: Convert embedded-C constants to use @const().
* tapset/linux/ioblock.stp: Ditto.
* tapset/linux/nd_syscalls.stp: Ditto.
* tapset/linux/nd_syscalls2.stp: Ditto.
* tapset/linux/signal.stp: Ditto.

8 years agoTestsuite resume mode only works with its own files.
Martin Cermak [Tue, 21 Jun 2016 14:07:02 +0000 (16:07 +0200)]
Testsuite resume mode only works with its own files.

This update makes the testsuite resume mode only work with its own
files, not touching logs that the user might have set aside for
his/her own reference in the testsuite directory.  After this
update, the log names "reserved" for the testsuite resume mode
functionality are systemtap.temp{1,2}.{log,sum}.

8 years agoFix handling of the [nd_]syscall.fanotify_mark 'mask' convenience variable.
David Smith [Fri, 17 Jun 2016 15:06:13 +0000 (10:06 -0500)]
Fix handling of the [nd_]syscall.fanotify_mark 'mask' convenience variable.

* tapset/linux/syscalls.stp (syscall.fanotify_mark): Fix compat handling
  of the 64-bit 'mask' parameter.
* tapset/linux/nd_syscalls.stp (syscall.fanotify_mark): Ditto.

8 years agoPartial 20236 fix: Cleanup memory accesses and always call lookup_bad_addr().
David Smith [Fri, 17 Jun 2016 14:16:15 +0000 (09:16 -0500)]
Partial 20236 fix: Cleanup memory accesses and always call lookup_bad_addr().

* runtime/linux/loc2c-runtime.h: Fairly serious rewrite of the
  deref/store_deref macros. Instead of custom assembly language macros for
  each arch, now we just use the kernel's routines.
  (__stp_deref_nocheck): New macro.
  (_stp_deref_nofault): New macro.
  (__stp_store_deref_nocheck): New macro.
  (_stp_store_deref_nofault): New macro.
  (kderef_buffer): Rewrote using lookup_bad_addr() and
  __stp_deref_nocheck(), allowing us to do 1 address check at the start of
  the function instead of checking byte by byte.
  (kderef_string): Ditto.
  (_stp_store_deref_string): New macro.
  (store_kderef_string): Rewrite in terms of _stp_store_deref_string().
  (store_uderef_string): Ditto.
* runtime/linux/copy.c (_stp_strncpy_from_user): Always use the kernel's
  strncpy_from_user(). Call lookup_bad_addr() on target address.
  (_stp_copy_from_user): Call lookup_bad_addr() on target address.
* runtime/stp_string.h (_stp_read_address): Delete
  macro. _stp_deref_nofault() can be used instead.
* runtime/stp_string.c (_stp_decode_utf8): Use new macro
  _stp_deref_nofault() instead of _stp_read_address().
* runtime/unwind.c: Ditto.
* runtime/unwind/unwind.h (read_ptr_sect): Ditto.
* runtime/addr-map.h: New file.
* runtime/addr-map.c: Include addr-map.h.
* runtime/runtime.h: Include addr-map.h so that early code can use
  lookup_bad_addr().
* runtime/linux/addr-map.c (lookup_bad_addr): Updated prototype.
* runtime/dyninst/addr-map.c (lookup_bad_addr): Update function
  prototype. Add copyright header.
* runtime/dyninst/loc2c-runtime.h (_stp_deref_nofault): New macro to match
  linux runtime changes.

8 years agotestsuite: refactor pthreadprobes.exp
Josh Stone [Thu, 16 Jun 2016 23:32:50 +0000 (16:32 -0700)]
testsuite: refactor pthreadprobes.exp

- move the main script into its own pthreadprobes.stp
- reduce repetition with macros, aliases, and an array of counters
- suppress warnings from stapdyn so individual failures can be checked

8 years agoFix typo in testsuite/systemtap.examples/profiling/timeout.stp.
David Smith [Thu, 16 Jun 2016 18:10:17 +0000 (13:10 -0500)]
Fix typo in testsuite/systemtap.examples/profiling/timeout.stp.

8 years agoMake some small improvements to [nd_]syscall.fanotify_mark for RHEL7.
David Smith [Thu, 16 Jun 2016 17:26:06 +0000 (12:26 -0500)]
Make some small improvements to [nd_]syscall.fanotify_mark for RHEL7.

* tapset/linux/syscalls.stp (syscall.fanotify_mark): Call
  __syscall_gate_compat_simple to avoid compat calls in the real syscall.
* tapset/linux/nd_syscalls.stp (nd_syscall.fanotify_mark): Ditto.
* testsuite/systemtap.syscall/fanotify.c: Make the fanotify file
  descriptor non-blocking, to avoid the testcase hanging on read.

8 years agoPR11637: Merge set_user_*() functions with master
Cody Santing [Thu, 16 Jun 2016 14:35:20 +0000 (10:35 -0400)]
PR11637: Merge set_user_*() functions with master

8 years agoPR11637: Updated probe point for test case
Cody Santing [Wed, 15 Jun 2016 17:04:06 +0000 (13:04 -0400)]
PR11637: Updated probe point for test case

8 years agoRHBZ1346112: let stap-server create ssl-cert on first run rather than install
Frank Ch. Eigler [Wed, 15 Jun 2016 14:58:01 +0000 (10:58 -0400)]
RHBZ1346112: let stap-server create ssl-cert  on first run rather than install

This way different container-images get different certs.

8 years agoPR11637: Completed test cases, updated documentation
Cody Santing [Wed, 15 Jun 2016 13:47:50 +0000 (09:47 -0400)]
PR11637: Completed test cases, updated documentation

/NEWS: Updated NEWS to include information about set_user_*() functions
/doc/SystemTap_Tapset_Referemce/tapsets.tmpl: Include new functions in tapsets documentation
/testsuite/systemtap.base/set_user.c: Generates user space address for use in test case
/testsuite/systemtap.base/set_user.stp: Updated test case to test all functions
/testsuite/systemtap.base/set_user_fail.stp: Removed test case

8 years agoFix pausing of probes in monitor mode
Felix Lu [Tue, 14 Jun 2016 16:41:59 +0000 (12:41 -0400)]
Fix pausing of probes in monitor mode

Commit 8df0d9e8fb2cc6 caused the probe conditions to be added later in
semantic_pass.

* elaborate.cxx: Add probe conditions early on.
* parse.cxx: parse_synthetic_probe - Set synthetic probe flag.
* staptree.h: struct probe - New synthetic flag.

8 years agoPartial 20236 fix: Add access_ok() to lookup_bad_addr().
David Smith [Tue, 14 Jun 2016 13:34:04 +0000 (08:34 -0500)]
Partial 20236 fix: Add access_ok() to lookup_bad_addr().

* runtime/linux/addr-map.c (lookup_bad_addr): Now calls access_ok(), which
  required the addition of a 'type' argument. In addition, there are now 2
  versions of lookup_bad_addr(), the new one doesn't bother searching the
  bad address database, since we don't populate that yet.
* runtime/dyninst/addr-map.c (lookup_bad_addr): Added dummy 'type'
  argument.
* runtime/linux/loc2c-runtime.h: Add either VERIFY_READ or VERIFY_WRITE to
  every lookup_bad_addr() call.

8 years agoRename @module_sizeof to @cast_module_sizeof
Josh Stone [Mon, 13 Jun 2016 18:08:08 +0000 (11:08 -0700)]
Rename @module_sizeof to @cast_module_sizeof

8 years agoAdd @cast_sizeof and @module_sizeof macros
Josh Stone [Mon, 13 Jun 2016 17:49:08 +0000 (10:49 -0700)]
Add @cast_sizeof and @module_sizeof macros

These embody the '& @cast(0, ...) [1]' pointer trick.

8 years agoAdd more syscall flags from mman.h
Josh Stone [Fri, 10 Jun 2016 20:55:59 +0000 (13:55 -0700)]
Add more syscall flags from mman.h

A few new MAP_*, PROT_*, and MADV_* flags are added to aux_syscalls.stp
and the relevant tests.

Some architectures have even more flags for compatibility, but don't do
anything with them.  I only included those that appear actively used.

8 years agoUpdate 4 syscall tests for rawhide.
David Smith [Fri, 10 Jun 2016 19:52:57 +0000 (14:52 -0500)]
Update 4 syscall tests for rawhide.

* testsuite/systemtap.syscall/recvmmsg.c: Skip a test that causes a
  SEGFAULT on rawhide's glibc.
* testsuite/systemtap.syscall/recvmsg.c: Ditto.
* testsuite/systemtap.syscall/sendmsg.c: Ditto.
* testsuite/systemtap.syscall/sendmmsg.c: Create our own version of
  sendmmsg(), since rawhide's glibc likes to substitute sendmsg() for
  sendmmsg().

8 years agoFix PR20192 by getting rid of RCU warnings.
David Smith [Fri, 10 Jun 2016 14:26:19 +0000 (09:26 -0500)]
Fix PR20192 by getting rid of RCU warnings.

* runtime/linux/runtime_context.h: Make sure all accesses to the contexts
  array use rcu functions.

8 years agoRHBZ1230463: systemtap.spec: remove glibc-headers buildrequires
Frank Ch. Eigler [Wed, 8 Jun 2016 15:01:19 +0000 (11:01 -0400)]
RHBZ1230463: systemtap.spec: remove glibc-headers buildrequires

We are reliably informed that this is unnecessary, and may
become harmful someday if glibc changes its subpackaging scheme.

8 years agoFix PR20211 by aimplementing the "resume mode" of the testsuite.
Martin Cermak [Wed, 8 Jun 2016 10:47:00 +0000 (12:47 +0200)]
Fix PR20211 by aimplementing the "resume mode" of the testsuite.

Once the SYSTEMTAP_TESTSUITE_RESUME environmental variable is set
to some non-zero value, the testsuite can run in "resume mode".

In this mode, tests, that have previously been run, are not being
re-executed, and their existing test results are being reused and
merged instead.

This can be useful e.g. when some of the tests causes kernel panic
or stall. Using the "resume mode", it is possible to reboot the
testing box, and re-run the testsuite skipping already executed
tests (incl. the one that caused the panic or stall - which will
stay "unfinished").

The "make list-unfinished" lists all such unfinished testcases.
Those need additional investigation.

The "resume mode" can be used with "make installcheck", or
"make installcheck-parallel".

8 years ago11637: Added test cases, added to set_user_* functions
Cody Santing [Tue, 7 Jun 2016 15:29:12 +0000 (11:29 -0400)]
11637: Added test cases, added to set_user_* functions

tapset/uconversion-guru.stp : Added deref_fault handlers, /* guru */ tag as well as comments.
testsuite/systemtap.base/set_user.c: Used to generate user space address
testsuite/systemtap.base/set_user.exp: Added to incorporate into testsuite
testsuite/systemtap.base/set_user.stp: Calls set_user_* functions and confirms values written to correct address
testsuite/systemtap.base/set_user_fail.stp:  Attempt to write to kernel space address

8 years agoRun publicanize.sh as a part of update-docs.
Martin Cermak [Tue, 7 Jun 2016 09:11:05 +0000 (11:11 +0200)]
Run publicanize.sh as a part of update-docs.

* doc/Tapset_Reference_Guide/publicanize.sh: Use abspaths.
* scripts/update-docs: Run publicanize.sh too.

8 years agoMake syscall.kexec_load and syscall.kexec_load.return optional.
David Smith [Mon, 6 Jun 2016 14:39:38 +0000 (09:39 -0500)]
Make syscall.kexec_load and syscall.kexec_load.return optional.

* tapset/linux/syscalls.stp: Make syscall.kexec_load and
  syscall.kexec_load.return optional. kexec_load can be configured out of
  the kernel.

8 years agoUse std::to_string to lex_cast from integers
Josh Stone [Thu, 2 Jun 2016 20:12:02 +0000 (13:12 -0700)]
Use std::to_string to lex_cast from integers

I don't know any case where this makes a performance difference, but it
does reduce stap's .text by about 2%.

8 years agosys/sdt.h: add troubleshooting blurb
Frank Ch. Eigler [Thu, 2 Jun 2016 14:20:02 +0000 (10:20 -0400)]
sys/sdt.h: add troubleshooting blurb

8 years agoFix PR20189 by updating the vfs tapset.
David Smith [Wed, 1 Jun 2016 15:45:07 +0000 (10:45 -0500)]
Fix PR20189 by updating the vfs tapset.

* tapset/linux/vfs.stp: Handle removal of PAGE_CACHE_SIZE by defining our
  own _STP_PAGE_SIZE which is either PAGE_CACHE_SIZE or PAGE_SIZE.

8 years agoFix PR20187 by updating socket.recvmsg.
David Smith [Wed, 1 Jun 2016 14:49:03 +0000 (09:49 -0500)]
Fix PR20187 by updating socket.recvmsg.

* tapset/linux/socket.stp: Fix 'size' convenience variable of
  socket.recvmsg for newer kernels.

8 years agoPR11637: Added set_user_* functionality
Cody Santing [Tue, 31 May 2016 15:06:09 +0000 (11:06 -0400)]
PR11637: Added set_user_* functionality

runtime/linux/loc2c-runtime.h: added store_uderef_string function
tapset/uconversions-guru.stp: new functions allow writing to user space memory

8 years agofix parser, delay consuming ')'
Felix Lu [Fri, 27 May 2016 20:29:35 +0000 (16:29 -0400)]
fix parser, delay consuming ')'

8 years agoFix PR20136 by using the @const() operator across the tapsets.
Martin Cermak [Fri, 27 May 2016 19:44:53 +0000 (21:44 +0200)]
Fix PR20136 by using the @const() operator across the tapsets.

8 years agoRe-fix PR19926 by simplifying previous implementation.
Martin Cermak [Fri, 27 May 2016 19:41:49 +0000 (21:41 +0200)]
Re-fix PR19926 by simplifying previous implementation.

This reimplementation of the @const() operator (0a7eb12d191)
is based on PR20136, comment 3. It moves all the logic to the
parser.  No elaboration involved.

8 years agoMake expect_op_any lazier
Josh Stone [Fri, 27 May 2016 19:16:43 +0000 (12:16 -0700)]
Make expect_op_any lazier

- Work directly from an initializer_list instead of making a vector.
- Don't construct the error message until we're sure there's an error.

8 years agoFix build for RHEL6
Felix Lu [Fri, 27 May 2016 18:43:55 +0000 (14:43 -0400)]
Fix build for RHEL6

8 years agoFix PR20161 by handling VM_FAULT_MINOR being removed from rawhide kernels.
David Smith [Fri, 27 May 2016 18:08:36 +0000 (13:08 -0500)]
Fix PR20161 by handling VM_FAULT_MINOR being removed from rawhide kernels.

* tapset/linux/memory.stp (vm_fault_contains): Handle VM_FAULT_MINOR being
  undefined by treating it the same way we did when it had the value of 0.

8 years agoFix PR20158 by updating the runtime for the 4.6 kernel.
David Smith [Fri, 27 May 2016 16:19:03 +0000 (11:19 -0500)]
Fix PR20158 by updating the runtime for the 4.6 kernel.

* buildrun.cxx (compile_pass): Added autoconf-stacktrace_ops-int-address.c
  compile test.
* stack.c: (print_stack_address): If STAPCONF_STACKTRACE_OPS_INT_ADDRESS
  is defined, the function returns a int instead of being a void
  function.
* runtime/linux/autoconf-stacktrace_ops-int-address.c: New autoconf-style
  test.

8 years agoPR20056: add missing ==
Felix Lu [Thu, 26 May 2016 20:45:10 +0000 (16:45 -0400)]
PR20056: add missing ==

8 years agoPR20056: add a comment
Felix Lu [Thu, 26 May 2016 20:20:00 +0000 (16:20 -0400)]
PR20056: add a comment

8 years agoPR20056: improve parser error message
Felix Lu [Thu, 26 May 2016 20:06:19 +0000 (16:06 -0400)]
PR20056: improve parser error message

* parse.cxx: new function expect_op_any, use new function for expecting
  a list of alternatives.

8 years agoFix PR20131 by making wildcard library paths work in probe specifications.
David Smith [Thu, 26 May 2016 19:17:58 +0000 (14:17 -0500)]
Fix PR20131 by making wildcard library paths work in probe specifications.

* tapsets.cxx (dwarf_builder::build): Fix logic error with commit
  c30ff77. If the library path isn't fully resolved, then use the path the
  user specified.
* testsuite/systemtap.base/listing_mode.exp: Decrease failures by being
  more forgiving about getting a full library path in 'stap -l' output.

8 years agoPR19624: add test cases
Cody Santing [Tue, 24 May 2016 20:22:43 +0000 (16:22 -0400)]
PR19624: add test cases

testsuite/parseko/duplicateparam01.stp
testsuite/parseko/duplicateparam02.stp
testsuite/parseko/duplicateparam03.stp

8 years agoPR19624: Duplicate function paramater names are not detected
Cody Santing [Tue, 24 May 2016 19:01:43 +0000 (15:01 -0400)]
PR19624: Duplicate function paramater names are not detected

parse.cxx (do_parse_functiondecl): detects duplicate parameter names

8 years agoMade a small improvement to testsuite/lib/systemtap.exp.
David Smith [Tue, 24 May 2016 16:48:25 +0000 (11:48 -0500)]
Made a small improvement to testsuite/lib/systemtap.exp.

* testsuite/lib/systemtap.exp: Rearrange a bit so that the
  'shutdown_server' and 'cleanup' functions get defined before being
  called.

8 years agoFix PR20132 by updating the runtime to handle a 'struct inode' change.
David Smith [Mon, 23 May 2016 18:56:29 +0000 (13:56 -0500)]
Fix PR20132 by updating the runtime to handle a 'struct inode' change.

* runtime/transport/transport.c (_stp_lock_inode): Use the new inode
  lock/unlock routines.
  (_stp_unlock_inode): Ditto.
* buildrun.cxx (compile_pass): Add autoconf-inode-rwsem test.
* runtime/linux/autoconf-inode-rwsem.c: New 'autoconf' test.

8 years agoUpdate listing_mode.exp to handle changes in stap output.
David Smith [Mon, 23 May 2016 15:31:02 +0000 (10:31 -0500)]
Update listing_mode.exp to handle changes in stap output.

* testsuite/systemtap.base/listing_mode.exp: Decrease failures by being
  more forgiving about getting a full library path in 'stap -l' output.

8 years agoFix PR17055 by reading perf values in a sleepable context.
David Smith [Mon, 23 May 2016 15:26:08 +0000 (10:26 -0500)]
Fix PR17055 by reading perf values in a sleepable context.

* tapsets.cxx (common_probe_entryfn_prologue): Add 'declaration_callback'
  and 'pre_context_callback' to allow callers to add to output prologue.
  (dwarf_derived_probe::emit_probe_local_init): For perf values, instead
  of reading the values here, just copy the values from where we stashed
  them when we read them before (when we could sleep).
  (uprobe_derived_probe::emit_perf_read_handler): New function.
  (uprobe_derived_probe_group::emit_module_perf_read_handlers): Ditto.
  (udpg_entryfn_prologue_declaration_callback): Ditto.
  (udpg_entryfn_prologue_pre_context_callback): Ditto.
  (uprobe_derived_probe_group::emit_module_utrace_decls): Call
  new function emit_module_perf_read_handlers().
  (uprobe_derived_probe_group::emit_module_decls): Figure out the maximun
  number of perf counters used per probe.
* tapsets.h: Add new callbacks to common_probe_entryfn_prologue().
* runtime/linux/uprobes-common.h (stap_uprobe_spec): Add
  'perf_read_handler' to actually read perf values.
* runtime/linux/uprobes-inode.c (stapiu_consumer): Ditto.
* runtime/linux/runtime.h: After loading the task_finder code, load the
  perf code if needed.
* runtime/common_probe_context.h: Add 'perf_read_values' to the context
  structure when we're using perf derived probes.
* testsuite/systemtap.base/perf.sh: Change '/usr/bin/cat' to '/bin/cat' so
  that systems (like RHEL6) that don't have 'usrmove' will still work.

8 years agoFix PR20122 by removing LD_LIBRARY_PATH from the environment.
Martin Cermak [Fri, 20 May 2016 14:54:47 +0000 (16:54 +0200)]
Fix PR20122 by removing LD_LIBRARY_PATH from the environment.

8 years agoset -i as default for stap-server.service
Felix Lu [Thu, 19 May 2016 18:13:03 +0000 (14:13 -0400)]
set -i as default for stap-server.service

8 years agoreplace -c 'sleep' usage with -T
Felix Lu [Thu, 19 May 2016 13:50:30 +0000 (09:50 -0400)]
replace -c 'sleep' usage with -T

8 years agoFix PR19926 by introducing translator built-in @const() operator.
Martin Cermak [Thu, 19 May 2016 09:07:19 +0000 (11:07 +0200)]
Fix PR19926 by introducing translator built-in @const() operator.

Tapsets or guru-mode user scripts can access header file constant
tokens, typically macros, using built-in @const() operator.  The
respective header file inclusion is possible either via the tapset
library, or using a top-level guru mode embedded-C construct.
This results in appropriate embedded C pragma comments setting.

8 years agodwflpp.cxx auto-iteration
Josh Stone [Wed, 18 May 2016 00:27:51 +0000 (17:27 -0700)]
dwflpp.cxx auto-iteration

Converting explicit iterator types to C++11 "auto".

8 years agotapsets.cxx iterator auto-pocalypse
Josh Stone [Tue, 17 May 2016 22:26:55 +0000 (15:26 -0700)]
tapsets.cxx iterator auto-pocalypse

Iterators might be the most common place where long templated types are
needed, and they're easily determined by C++11 "auto". Start converting!

8 years agotapsets: use levenshtein_suggest for kprobe.function
Josh Stone [Tue, 17 May 2016 21:03:47 +0000 (14:03 -0700)]
tapsets: use levenshtein_suggest for kprobe.function

8 years agonew -T timeout option
Felix Lu [Tue, 17 May 2016 18:13:13 +0000 (14:13 -0400)]
new -T timeout option

* cmdline.h: Add -T flag
* elaborate.cxx: New function setup_timeout to create timer probe
* session.cxx: Initialize new timeout variable. Parse -T option
* session.h: New timeout variable
* man/stap.1.in: Documentation
* testsuite/systemtap.base/timeout.exp: Test it

8 years agoInitialize pointer
Felix Lu [Mon, 16 May 2016 20:48:52 +0000 (16:48 -0400)]
Initialize pointer

* stap-serverd.cxx: initialize strlst

8 years agomonitor mode: fix printing of globals
Felix Lu [Mon, 16 May 2016 18:06:56 +0000 (14:06 -0400)]
monitor mode: fix printing of globals

Previously, aggregates were not being printed properly. The count of the
aggregate is now printed. String globals are now printed with ""s.

* elaborate.cxx:
  - semantic_pass: initialize monitor mode after type resolution.
  - monitor_mode_init: rerun type resolution after new procfs probes.

8 years agocompile server: use only one server for multiple kernel versions
Felix Lu [Wed, 11 May 2016 18:02:27 +0000 (14:02 -0400)]
compile server: use only one server for multiple kernel versions

* stap-serverd.cxx:
  - Remove uname_r global
  - kernel_build_tree is now a map of kernel version -> build tree
  - process_r: Defer adding -r flag
  - create_services: Create one service per target kernel version
  - handle_request: Pass -r flag to stap based on client's sysinfo field
* stap-server:
  - spawn only one server passing -r flags for each kernel version when
    using the -i option

8 years agomonitor mode: revive the help hint
Felix Lu [Fri, 13 May 2016 17:28:51 +0000 (13:28 -0400)]
monitor mode: revive the help hint

8 years agoeventcount sample: reorder columns
Frank Ch. Eigler [Thu, 12 May 2016 21:40:10 +0000 (17:40 -0400)]
eventcount sample: reorder columns

The event count/rate columns are of a more predictable width, so fit
better in the middle than the far right.

8 years agoelaborate.cxx: add some respect for pending_interrupt
Frank Ch. Eigler [Thu, 12 May 2016 15:28:21 +0000 (11:28 -0400)]
elaborate.cxx: add some respect for pending_interrupt

Some wildcardy stap scripts can cause processing for quite awhile
within elaborate.cxx loops, without due respect for ^C.  Now respond
quicker, at least in the cases relevant to

  ./stap -v  .../fntimes.stp 'process("/usr/sbin/PROCESS").function("*")'

8 years agoPR20065: autoreconf after 'aclocal -Im4 --install'
Josh Stone [Mon, 9 May 2016 21:17:07 +0000 (14:17 -0700)]
PR20065: autoreconf after 'aclocal -Im4 --install'

8 years agoLink monitor libs to stapio only
Francis Giraldeau [Mon, 9 May 2016 21:12:07 +0000 (14:12 -0700)]
Link monitor libs to stapio only

8 years agoPR20042: support tracepoints with function-pointer args
Josh Stone [Fri, 6 May 2016 23:43:37 +0000 (16:43 -0700)]
PR20042: support tracepoints with function-pointer args

For example, tracepoint "cpuhp_enter" has "int (*fun)(unsigned int))",
but since dwarf_type_name() didn't handle DW_TAG_subroutine_type, it
would call this "void*", and then the whole tracepoint function
signature would fail -Werror=incompatible-pointer-types.

We can now expand function-pointers in dwarf_type_name(), but we also
need a new dwarf_type_decl() which knows how to insert the name in the
middle of the type string.

8 years ago_stp_perf_read: check the union type before accessing fields
Josh Stone [Thu, 5 May 2016 20:16:50 +0000 (13:16 -0700)]
_stp_perf_read: check the union type before accessing fields

8 years agoUse std::mutex to guard the spawned_pids set
Josh Stone [Tue, 3 May 2016 22:04:37 +0000 (15:04 -0700)]
Use std::mutex to guard the spawned_pids set

8 years agoUse std::thread for threading and CPU counts
Josh Stone [Tue, 3 May 2016 22:03:33 +0000 (15:03 -0700)]
Use std::thread for threading and CPU counts

8 years agoFix PR20040 by keeping the task_exe_file function from sleeping.
David Smith [Tue, 3 May 2016 18:23:58 +0000 (13:23 -0500)]
Fix PR20040 by keeping the task_exe_file function from sleeping.

* tapset/linux/task.stp: No longer call get_task_mm()/mmput(), so that the
  function won't sleep and cause kernel bugs.

8 years agodwflpp: use fixed-size buffers for ldd parsing
Josh Stone [Tue, 3 May 2016 01:43:28 +0000 (18:43 -0700)]
dwflpp: use fixed-size buffers for ldd parsing

The dynamic string allocation causes trouble on RHEL5 -- %as is always
parsed as a float under C++11, but %ms requires glibc >= 2.7.  But we
already used a fixed buffer for the line, so additional fixed buffers
are not a big deal for its substrings.

8 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Josh Stone [Mon, 2 May 2016 23:41:33 +0000 (16:41 -0700)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

8 years agoremote: use initializer lists to build cmd vectors
Josh Stone [Mon, 2 May 2016 20:36:56 +0000 (13:36 -0700)]
remote: use initializer lists to build cmd vectors

8 years agostap-serverd: use initializer lists to build cmd vectors
Josh Stone [Mon, 2 May 2016 20:04:15 +0000 (13:04 -0700)]
stap-serverd: use initializer lists to build cmd vectors

8 years agosession: use initializer lists to build cmd vectors
Josh Stone [Mon, 2 May 2016 19:51:26 +0000 (12:51 -0700)]
session: use initializer lists to build cmd vectors

8 years agocsclient: use initializer lists to build cmd vectors
Josh Stone [Mon, 2 May 2016 19:39:45 +0000 (12:39 -0700)]
csclient: use initializer lists to build cmd vectors

8 years agobuildrun: use initializer lists to build cmd vectors
Josh Stone [Mon, 2 May 2016 19:30:54 +0000 (12:30 -0700)]
buildrun: use initializer lists to build cmd vectors

8 years agoutil.h: double-check C++11 support
Josh Stone [Mon, 2 May 2016 18:29:41 +0000 (11:29 -0700)]
util.h: double-check C++11 support

8 years agoPlug preempt leak in _stp_runtime_entryfn_put/get_context.
Mateusz Guzik [Mon, 2 May 2016 17:28:55 +0000 (12:28 -0500)]
Plug preempt leak in _stp_runtime_entryfn_put/get_context.

If _stp_runtime_entryfn_get_context returns a context, preemption
counter is always incremented. On the other hand
_stp_runtime_entryfn_put_context only decrements the counter if the
passed context matches the one currently set on the cpu.

The context can be set to NULL by _stp_runtime_contexts_free, making the
comparison false and in effect leading to a leak, e.g.:
timer: _stp_ctl_work_callback+0x0/0x1e0[stap_af8544c7eb51251ef8c
 377abff659b05_25070] preempt leak: 00000101 -> 00000102

8 years agomonitor mode: remove pipe
Felix Lu [Fri, 29 Apr 2016 19:50:29 +0000 (15:50 -0400)]
monitor mode: remove pipe

Save output to monitor ring buffer directly instead of sending it
through a pipe.

* staprun/mainloop.c: remove pipe fd from fd set
* staprun/monitor.c: remove pipe data processing, add mutex for ring
  buffer
* staprun/relay.c:
  reader_thread - add line processing logic
  init_relayfs - remove pipe
* staprun/staprun.h - remove pipe

8 years agoFix: process.library.function failed with sysroot.
Torsten Polle [Wed, 3 Dec 2014 21:17:14 +0000 (22:17 +0100)]
Fix: process.library.function failed with sysroot.

Signed-off-by: Torsten Polle <Torsten.Polle@gmx.de>
8 years agoFix: Processes are not found.
Torsten Polle [Fri, 13 Jun 2014 20:36:44 +0000 (22:36 +0200)]
Fix: Processes are not found.

If sysroot is set, module_val will get sysroot as prefix. But
is_fully_resolved() is appending sysroot once more.

Signed-off-by: Torsten Polle <Torsten.Polle@gmx.de>
8 years agoFix: Debug links are not found if the sysroot is used.
Torsten Polle [Thu, 6 Mar 2014 20:38:49 +0000 (21:38 +0100)]
Fix: Debug links are not found if the sysroot is used.

Signed-off-by: Torsten Polle <Torsten.Polle@gmx.de>
8 years agoSupport the sysroot option for modules added for symbol/unwind information
Torsten Polle [Fri, 13 Dec 2013 22:26:07 +0000 (23:26 +0100)]
Support the sysroot option for modules added for symbol/unwind information

The sysroot option failed for modules added for their symbol/unwind
information. Those user module names are prepended by sysroot.

Signed-off-by: Torsten Polle <Torsten.Polle@gmx.de>
8 years agoSpecialize hash<interned_string> for the different implementations
Josh Stone [Sat, 30 Apr 2016 01:54:29 +0000 (18:54 -0700)]
Specialize hash<interned_string> for the different implementations

We need the custom hash for boost::string_ref, but the fallback based on
std::string can just forward its hashing.

Also note C++17's std::string_view, which hashes natively.

8 years agonote the possible use of std::string_view
Josh Stone [Sat, 30 Apr 2016 01:34:07 +0000 (18:34 -0700)]
note the possible use of std::string_view

8 years agoDissolve unordered.h
Josh Stone [Sat, 30 Apr 2016 01:30:34 +0000 (18:30 -0700)]
Dissolve unordered.h

8 years agoUse std::unordered_map et al
Josh Stone [Sat, 30 Apr 2016 00:56:01 +0000 (17:56 -0700)]
Use std::unordered_map et al

8 years agoRemove the unused auto_free.h
Josh Stone [Sat, 30 Apr 2016 00:29:59 +0000 (17:29 -0700)]
Remove the unused auto_free.h

If anyone wants similar functionality again, unique_ptr and shared_ptr
can take custom deleters, e.g. std::unique_ptr(p, std::free);

8 years agoUse make_shared for creating exp_types
Josh Stone [Sat, 30 Apr 2016 00:22:05 +0000 (17:22 -0700)]
Use make_shared for creating exp_types

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