]> sourceware.org Git - systemtap.git/log
systemtap.git
8 years agofix interactive mode empty script saving
Felix Lu [Mon, 22 Aug 2016 19:59:18 +0000 (15:59 -0400)]
fix interactive mode empty script saving

When saving an empty script with the "save" or "edit" command,
a runtime error from join() causes interactive mode to exit.

8 years agoFix PR20504 by updating xfs/nfs4 tracepoint support for kernel 4.7+.
David Smith [Mon, 22 Aug 2016 18:49:03 +0000 (13:49 -0500)]
Fix PR20504 by updating xfs/nfs4 tracepoint support for kernel 4.7+.

* tapsets.cxx (tracepoint_extra_decls): Add includes/definitions for xfs
  and nfs4 tracepoints on kernel 4.7+.

8 years agoPR14787: colorize stap -L probe points
Felix Lu [Mon, 22 Aug 2016 16:04:53 +0000 (12:04 -0400)]
PR14787: colorize stap -L probe points

8 years agoFix a '--rlimit-*' option problem identified by BZ1368188.
David Smith [Thu, 18 Aug 2016 20:30:28 +0000 (15:30 -0500)]
Fix a '--rlimit-*' option problem identified by BZ1368188.

* session.cxx (systemtap_session::parse_cmdline): Improve the '--rlimit-*'
  options to report an error and return if the option value isn't
  specified or doesn't convert properly. If the limit can't be set,
  return if the error isn't EPERM.
* man/stap.1.in: Remove confusing language in the '--rlimit-*' option
  descriptions.
* testsuite/parseko/rlimit-as01.stp: New test case.
* testsuite/parseko/rlimit-as02.stp: Ditto.
* testsuite/parseko/rlimit-cpu01.stp: Ditto.
* testsuite/parseko/rlimit-cpu02.stp: Ditto.
* testsuite/parseko/rlimit-fsize01.stp: Ditto.
* testsuite/parseko/rlimit-fsize02.stp: Ditto.
* testsuite/parseko/rlimit-nproc01.stp: Ditto.
* testsuite/parseko/rlimit-nproc02.stp: Ditto.
* testsuite/parseko/rlimit-stack01.stp: Ditto.
* testsuite/parseko/rlimit-stack02.stp: Ditto.

8 years agoUpdate procmod_watcher.stp example for more modern kernels.
David Smith [Thu, 18 Aug 2016 15:37:12 +0000 (10:37 -0500)]
Update procmod_watcher.stp example for more modern kernels.

* testsuite/systemtap.examples/process/procmod_watcher.stp: Update example
  to report 'clone' syscalls as 'fork' syscalls (since on some
  architectures like aarch64 fork() is implemented using clone()). Also
  report 'exit_group' syscalls as 'exit' syscalls.

8 years agoTweak [gs]etgroups syscall test cases for aarch64.
David Smith [Wed, 17 Aug 2016 21:35:13 +0000 (16:35 -0500)]
Tweak [gs]etgroups syscall test cases for aarch64.

* testsuite/systemtap.syscall/getgroups.c: Relax looking for an error
  return for aarch64.
* testsuite/systemtap.syscall/setgroups.c: Ditto.

8 years agoMake [nd_]syscall.sched_[gs]etaffinity probes fully optional.
David Smith [Wed, 17 Aug 2016 17:59:07 +0000 (12:59 -0500)]
Make [nd_]syscall.sched_[gs]etaffinity probes fully optional.

* tapset/linux/syscalls2.stp (syscall.sched_getaffinity): Make fully
  optional for kernels with no 'affinity' support.
  (syscall.sched_setaffinity): Ditto.
* tapset/linux/nd_syscalls2.stp (nd_syscall.sched_getaffinity): Ditto.
  (nd_syscall.sched_setaffinity): Ditto.

8 years agoPR20149: place all .function probes at entry
Felix Lu [Tue, 16 Aug 2016 14:36:57 +0000 (10:36 -0400)]
PR20149: place all .function probes at entry

Function probes with a line specifier different than the declaration
line are forced into entry probes.

* tapsets.cxx: query_cu: fall through line probing if .function()
  present

8 years agoadd section for -T in stap --help
Felix Lu [Mon, 15 Aug 2016 18:32:09 +0000 (14:32 -0400)]
add section for -T in stap --help

8 years agoPR15932: printf %m/%M user variant
Cody Santing [Fri, 12 Aug 2016 19:03:13 +0000 (15:03 -0400)]
PR15932: printf %m/%M user variant

* man/stap.1.in: update documentation regarding %m/%M
* runtime/vsprintf.c: m/M cases in _stp_vsprint_memory now check for '#'/STP_SPECIAL flag
* testsuite/systemtap.printf/print_user_buffer.*: test case for new variant

8 years agostore auto_path string in probe point
Felix Lu [Fri, 12 Aug 2016 15:56:14 +0000 (11:56 -0400)]
store auto_path string in probe point

8 years agostap startup message: tweak invitation to use '-i' interactive mode
Frank Ch. Eigler [Fri, 12 Aug 2016 15:16:53 +0000 (11:16 -0400)]
stap startup message: tweak invitation to use '-i' interactive mode

8 years agoPR20433: simplify strcpy NULL-tolerance with inlined ?: ""
Frank Ch. Eigler [Fri, 12 Aug 2016 15:15:35 +0000 (11:15 -0400)]
PR20433: simplify strcpy NULL-tolerance with inlined ?: ""

Reworking commit b91ef70c, without big need for a new _stp_strcmp
library function.

8 years agosome auto_path test case
Felix Lu [Fri, 12 Aug 2016 14:44:58 +0000 (10:44 -0400)]
some auto_path test case

* main.cxx: Check for PATH directory in all include paths.
* testsuite/systemtap.base/auto_path.exp: New testcase.
* testsuite/systemtap.base/auto_path.c: Test program.
* testsuite/systemtap.base/tapset/PATH/*: Auto path tapsets.

8 years agomove auto_path expansion to tapset resolution phase
Felix Lu [Thu, 11 Aug 2016 16:26:19 +0000 (12:26 -0400)]
move auto_path expansion to tapset resolution phase

* parse.cxx: parse_probe_points - Remove alias seen flag.
* staptree.h: struct probe_point - New auto_path flag.
* tapsets.cxx: dwarf_builder::build - Expand process component
  for /PATH/ directory.

8 years agoFix testsuite's list-unfinished makefile target
Martin Cermak [Fri, 12 Aug 2016 05:21:03 +0000 (07:21 +0200)]
Fix testsuite's list-unfinished makefile target

Do not only check systemtap.log in the main testsuite directory,
but also check other locations, namely the artifacts directory
used by the installcheck-parallel target.

8 years agoUpdate interactive mode
Cody Santing [Thu, 11 Aug 2016 19:29:29 +0000 (15:29 -0400)]
Update interactive mode

* cmdline.cxx: introduce new '--interactive' switch
* cmdline.h: introduce new '--interactive' switch
* interactive.cxx: Print a few sample commands upon entering interactive mode.  Add new 'help' alias, '?'.
* session.cxx: Map new '--ineractive' switch to interactive mode.  When a script is not specified, new error message   suggests interactive mode.

8 years agoRHBZ1312169: make stap-prep fall back to debuginfo-install
Frank Ch. Eigler [Thu, 11 Aug 2016 17:40:55 +0000 (13:40 -0400)]
RHBZ1312169: make stap-prep fall back to debuginfo-install

On some fedora / rhel boxes and their repo selections,
"debuginfo-install" can sometimes fetch the right files
even if "yum install" cannot.

8 years agoFix(ish) for PR20433 by avoiding a fedora kernel crash.
David Smith [Thu, 11 Aug 2016 16:31:28 +0000 (11:31 -0500)]
Fix(ish) for PR20433 by avoiding a fedora kernel crash.

* runtime/vma.c (_stp_vma_mmap_cb): Use _stp_strcmp() to avoid a kernel
  crash.
* runtime/stp_string.c (_stp_strcmp): New function, a variant of strcmp()
  that treats NULL pointers as empty strings.
* runtime/stp_string.h: Add _stp_strcmp() declaration.

8 years agofilename based auto path tapset support
Felix Lu [Tue, 9 Aug 2016 19:36:14 +0000 (15:36 -0400)]
filename based auto path tapset support

Sometimes the process name may change with new versions and the
tapset must be modified. Process probe points in the PATH directory
may now have their arguments replaced by the full file path starting
from /PATH.

* parse.cxx: Pass alias_seen flag to parse_probe_points(). Add filepath
  argument to process component.

8 years agooverloading testcase
Felix Lu [Tue, 9 Aug 2016 14:18:55 +0000 (10:18 -0400)]
overloading testcase

* testsuite/semko/overload.stp: New testcase.

8 years agosome function overloading optimizations
Felix Lu [Mon, 8 Aug 2016 18:48:37 +0000 (14:48 -0400)]
some function overloading optimizations

This removes some unnecessary code in the generated module.

* elaborate.cxx: Store next flag in functiondecl instead of in a set.
* staptree.h: struct functiondecl:: new has_next flag.
* translate.cxx: c_unparser::visit_functioncall - Don't generate
  redundant functioncall code for overloaded functions.

8 years agoPR20217: overload warnings
Felix Lu [Fri, 5 Aug 2016 15:28:40 +0000 (11:28 -0400)]
PR20217: overload warnings

Add a warning for overloaded functions that can't be reached
and also prevent them from being generated at all.

* elaborate.cxx: New struct function_next_check. New struct
  dead_overload_remover. New semantic_pass_overload function
  for optimization pass.

8 years agoFix a couple of conversions.stp tapset problems and improve its testing.
David Smith [Thu, 4 Aug 2016 20:39:19 +0000 (15:39 -0500)]
Fix a couple of conversions.stp tapset problems and improve its testing.

* tapset/linux/conversions.stp (kernel_buffer_quoted): Properly print the
  address as an unsigned long (instead of an unsigned int).
  (kernel_buffer_quoted_error): Add the faulting address in the error
  message.
* testsuite/buildok/conversions-embedded.stp: Add compile tests for
  several missing functions.

8 years agoPR10485: auto-path tapset support
Felix Lu [Thu, 28 Jul 2016 14:39:58 +0000 (10:39 -0400)]
PR10485: auto-path tapset support

This prefixes the process probes placed in the tapset/PATH/ directory
with the location of the tapset.

* main.cxx: New collect_{stp,stpm} functions for passing to nftw(). Parse all
  .stp files placed in include_path[0]/PATH/. nftw() is now used instead of
  globbing for tapset searching to allow recursive traversal.
* parse.h: New pf_auto_path flag.
* parse.cxx: Prefix process argument with location of tapset.

8 years agoPR19906: absolute pathnames for vfs.* probes
Felix Lu [Tue, 2 Aug 2016 19:19:38 +0000 (15:19 -0400)]
PR19906: absolute pathnames for vfs.* probes

* tapset/linux/vfs.stp: Add a pathname variable to all probes.

8 years agoPR20423: improve 'struct {...} being accessed instead of member' message
Frank Ch. Eigler [Sun, 31 Jul 2016 17:57:32 +0000 (13:57 -0400)]
PR20423: improve 'struct {...} being accessed instead of member' message

Esp. for anonymous structures, this message was not very helpful.
The new message is much more complete:

semantic error: 'struct {...}' (include/linux/types.h:175) is being accessed instead of a member such as '->counter': operator '->' at <input>:1:81
        source: probe kernel.function("dput") { println( @cast($dentry->d_inode, "struct inode")->i_count) }
                                                                                                ^

8 years agosystemtap.spec: add systemd as BuildRequires & Requires if %{with_systemd}
Igor Zhbanov [Fri, 29 Jul 2016 17:51:21 +0000 (13:51 -0400)]
systemtap.spec: add systemd as BuildRequires & Requires if %{with_systemd}

It should have both "Requires: systemd" and "BuildRequires: systemd".
BuildRequires because it uses %{_unitdir} and %{_tmpfilesdir}, and
Requires because of systemctl in %post.

8 years agoPR20416 cont'd: kprobe.function.return @entry too
Frank Ch. Eigler [Wed, 27 Jul 2016 23:15:51 +0000 (19:15 -0400)]
PR20416 cont'd: kprobe.function.return @entry too

Bonus round: jistone identified a twin in need of the same fix.

8 years agoPR20416: handle @entry(@perf("..."))
Frank Ch. Eigler [Wed, 27 Jul 2016 22:43:56 +0000 (18:43 -0400)]
PR20416: handle @entry(@perf("..."))

The dwarf_var_expanding_visitor::visit_entry_op function inherited
some old logic from expanding $var's in .function().return probes.
This logic is not approproate for the more formal way by which current
code synthesizes a .call probe to collect @entry(EXPR) values.  Now we
pass the EXPR tree to the .call probe unmodified, for resolution
there, rather than in a fake non-.return context here.  This makes
@entry(@perf("...")) expressions work.

8 years agodejagnu testsuite driver: collect output during startup smoke test
Frank Ch. Eigler [Wed, 27 Jul 2016 22:23:34 +0000 (18:23 -0400)]
dejagnu testsuite driver: collect output during startup smoke test

Stop suppressing stderr; if something's wrong (like missing
kernel-debuginfo), let's show the user the whole message.

8 years agoFix a locking problem in the task_finder.
David Smith [Tue, 26 Jul 2016 17:57:59 +0000 (12:57 -0500)]
Fix a locking problem in the task_finder.

* runtime/linux/task_finder.c (stap_start_task_finder): Be sure to ulock
  the task if we exit early.
* runtime/linux/task_finder2.c (stap_start_task_finder): Ditto.

8 years agoAdd a non-optimized test to testsuite/systemtap.base/at_var.exp.
Ravi Bangoria [Tue, 26 Jul 2016 16:20:05 +0000 (11:20 -0500)]
Add a non-optimized test to testsuite/systemtap.base/at_var.exp.

* testsuite/systemtap.base/at_var.exp: Add non-optimized test. Also, don't
  bother trying to run the executable if compilation failed.

8 years agoSuppress empty builder error message
Felix Lu [Mon, 25 Jul 2016 20:58:43 +0000 (16:58 -0400)]
Suppress empty builder error message

8 years agoUse the standard testsuite 'kill' procedure in unprivileged_probes.exp.
David Smith [Mon, 25 Jul 2016 15:57:43 +0000 (10:57 -0500)]
Use the standard testsuite 'kill' procedure in unprivileged_probes.exp.

8 years agoImprove session state and transport state handling.
David Smith [Mon, 25 Jul 2016 15:24:27 +0000 (10:24 -0500)]
Improve session state and transport state handling.

* translate.cxx (emit_module_init): At the start, only set the session
  state to STAP_SESSION_STARTING if we were in the
  STAP_SESSION_UNINITIALIZED state. Once the session is initialized, set
  the state to STAP_SESSION_RUNNING (if we're still in the
  STAP_SESSION_STARTING state).
* runtime/common_session_state.h: Add new 'STAP_SESSION_UNITIALIZED' state.
* runtime/dyninst/common_session_state.h (stp_session_init): Set initial
  session state to STAP_SESSION_UNITIALIZED.
* runtime/linux/common_session_state.h: Ditto.
* runtime/dyninst/linux_defs.h (atomic_cmpxchg): New function.
* runtime/transport/transport.c: Merge '_stp_start_called' and
  '_stp_exit_called' flags into a single flag called
  '_stp_transport_state'.

8 years agoMerge branch 'csanting/PR19489'
Cody Santing [Mon, 25 Jul 2016 14:30:19 +0000 (10:30 -0400)]
Merge branch 'csanting/PR19489'

8 years agopfaults.stp: correct the fault_entry_time index
Josh Stone [Thu, 21 Jul 2016 17:11:31 +0000 (10:11 -0700)]
pfaults.stp: correct the fault_entry_time index

Commit 31131f187a73 removed most manual tid() memoization, but missed
this particular use, and stap complained about the never-assigned 'id'.

8 years agoDon't use as_root() to run stap within tapset_functions.exp
Martin Cermak [Thu, 21 Jul 2016 16:17:16 +0000 (18:17 +0200)]
Don't use as_root() to run stap within tapset_functions.exp

Most of the other as_root() in the testsuite is for stuff that
genuinely has to be root, like loading some test kernel module
that we'll probe.  For running the testsuite under a regular
user, stap{user,sys,dev} group membership mechanism should be
used instead.

8 years agostapprobes.3: Spell out that $context variables are probe-point specific.
Frank Ch. Eigler [Wed, 6 Jul 2016 17:34:05 +0000 (13:34 -0400)]
stapprobes.3: Spell out that $context variables are probe-point specific.

8 years agoUse our standard testsuite 'kill' procedure in several tests.
David Smith [Mon, 18 Jul 2016 14:04:30 +0000 (09:04 -0500)]
Use our standard testsuite 'kill' procedure in several tests.

* testsuite/systemtap.base/flightrec1.exp: Use our "kill" procedure,
  instead of doing "exec kill ...".
* testsuite/systemtap.base/flightrec2.exp: Ditto.
* testsuite/systemtap.base/flightrec3.exp: Ditto.
* testsuite/systemtap.base/flightrec4.exp: Ditto.
* testsuite/systemtap.base/flightrec5.exp: Ditto.
* testsuite/systemtap.base/ipaddr.exp: Ditto.
* testsuite/systemtap.base/pr13158.exp: Ditto.
* testsuite/systemtap.base/remote.exp: Ditto.
* testsuite/systemtap.base/stapsh-unix.exp: Ditto.
* testsuite/systemtap.base/target_set.exp: Ditto.

8 years agoFix handling of internal transport flags.
David Smith [Fri, 15 Jul 2016 16:14:21 +0000 (11:14 -0500)]
Fix handling of internal transport flags.

* runtime/transport/transport.c: Remove unused '_stp_transport_mutex'
  mutex. Commit 440c8ee removed the mutex protection of the
  '_stp_start_called' and '_stp_exit_called' flags, so those flags have
  been converted to be atomics so that concurrent use of those flags see
  the correct values.

8 years agoMake sure the unprivileged_myproc.exp testcase kills its processes.
David Smith [Fri, 15 Jul 2016 16:00:33 +0000 (11:00 -0500)]
Make sure the unprivileged_myproc.exp testcase kills its processes.

* testsuite/systemtap.unprivileged/unprivileged_myproc.exp: Use library
  'kill' proc to make sure the test executables die.
* testsuite/lib/systemtap.exp (kill): Add 'AS_ROOT' argument, to kill the
  pid as root.

8 years agoUpdate sendmmsg syscall test.
David Smith [Wed, 13 Jul 2016 17:16:09 +0000 (12:16 -0500)]
Update sendmmsg syscall test.

* testsuite/systemtap.syscall/sendmmsg.c: Update test to avoid a failur on
  32-bit RHEL6.

8 years agoTweak autocast-defined interactions further
Josh Stone [Sat, 9 Jul 2016 01:21:49 +0000 (18:21 -0700)]
Tweak autocast-defined interactions further

- collapse basic @defined($foo) right away.
- last-ditch collapse other @defined(expr) to 1 or 0 depending on pe_unknown.
- run that last-ditch effort *before* turning on assert_resolvability.
- only run extra dead_control_remover for optimized runs
- in var_expanding_visitor, pass *any* unchanged expr through, so they
  may be decided later.  (e.g. for @choose_defined ternaries)

8 years agoIncrease the difficulty of semok/autocast14.stp
Josh Stone [Wed, 22 Jun 2016 19:09:05 +0000 (12:09 -0700)]
Increase the difficulty of semok/autocast14.stp

8 years agoPR18079: support nested autocast / @defined
Frank Ch. Eigler [Wed, 22 Jun 2016 15:43:33 +0000 (11:43 -0400)]
PR18079: support nested autocast / @defined

We now perform const-folding & dead-code-elision during the type
resolution loop, whenever an autocast expression gets evaluated.  This
way, @defined(foo()->mm) type expressions can work as nature intended.

This requires @defined() not to be short-circuit evaluated to 0 during
a random const_folding process, so a flag is introduced to control its
preservation or collapsing.  For the last (assert_resolvability) pass
in the type resolution loop, this flag is set to true, so that
genuinely unresolvable @defined($expressions) do get mapped to 0 in
time for a last elision.

8 years agopfaults.stp: correct the fault_entry_time index
Josh Stone [Thu, 21 Jul 2016 17:11:31 +0000 (10:11 -0700)]
pfaults.stp: correct the fault_entry_time index

Commit 31131f187a73 removed most manual tid() memoization, but missed
this particular use, and stap complained about the never-assigned 'id'.

8 years agoDon't use as_root() to run stap within tapset_functions.exp
Martin Cermak [Thu, 21 Jul 2016 16:17:16 +0000 (18:17 +0200)]
Don't use as_root() to run stap within tapset_functions.exp

Most of the other as_root() in the testsuite is for stuff that
genuinely has to be root, like loading some test kernel module
that we'll probe.  For running the testsuite under a regular
user, stap{user,sys,dev} group membership mechanism should be
used instead.

8 years agostapprobes.3: Spell out that $context variables are probe-point specific.
Frank Ch. Eigler [Wed, 6 Jul 2016 17:34:05 +0000 (13:34 -0400)]
stapprobes.3: Spell out that $context variables are probe-point specific.

8 years agoUse our standard testsuite 'kill' procedure in several tests.
David Smith [Mon, 18 Jul 2016 14:04:30 +0000 (09:04 -0500)]
Use our standard testsuite 'kill' procedure in several tests.

* testsuite/systemtap.base/flightrec1.exp: Use our "kill" procedure,
  instead of doing "exec kill ...".
* testsuite/systemtap.base/flightrec2.exp: Ditto.
* testsuite/systemtap.base/flightrec3.exp: Ditto.
* testsuite/systemtap.base/flightrec4.exp: Ditto.
* testsuite/systemtap.base/flightrec5.exp: Ditto.
* testsuite/systemtap.base/ipaddr.exp: Ditto.
* testsuite/systemtap.base/pr13158.exp: Ditto.
* testsuite/systemtap.base/remote.exp: Ditto.
* testsuite/systemtap.base/stapsh-unix.exp: Ditto.
* testsuite/systemtap.base/target_set.exp: Ditto.

8 years agoFix handling of internal transport flags.
David Smith [Fri, 15 Jul 2016 16:14:21 +0000 (11:14 -0500)]
Fix handling of internal transport flags.

* runtime/transport/transport.c: Remove unused '_stp_transport_mutex'
  mutex. Commit 440c8ee removed the mutex protection of the
  '_stp_start_called' and '_stp_exit_called' flags, so those flags have
  been converted to be atomics so that concurrent use of those flags see
  the correct values.

8 years agoMake sure the unprivileged_myproc.exp testcase kills its processes.
David Smith [Fri, 15 Jul 2016 16:00:33 +0000 (11:00 -0500)]
Make sure the unprivileged_myproc.exp testcase kills its processes.

* testsuite/systemtap.unprivileged/unprivileged_myproc.exp: Use library
  'kill' proc to make sure the test executables die.
* testsuite/lib/systemtap.exp (kill): Add 'AS_ROOT' argument, to kill the
  pid as root.

8 years agoUpdate sendmmsg syscall test.
David Smith [Wed, 13 Jul 2016 17:16:09 +0000 (12:16 -0500)]
Update sendmmsg syscall test.

* testsuite/systemtap.syscall/sendmmsg.c: Update test to avoid a failur on
  32-bit RHEL6.

8 years agoMerge branch 'fche/pr18079'
Josh Stone [Tue, 12 Jul 2016 22:22:10 +0000 (15:22 -0700)]
Merge branch 'fche/pr18079'

8 years agoPR19489: Update send syscalls to use buffer_quoted
Cody Santing [Tue, 12 Jul 2016 19:50:03 +0000 (15:50 -0400)]
PR19489: Update send syscalls to use buffer_quoted

tapset/linux/nd_syscalls2.stp: send and sendto use new user_buffer_quoted function
tapset/linnux/syscalls2.stp: send and sendto use new user_buffer_quoted function
testsuite/systemtap.syscall/send.c: Update expected output of testcases
testsuite/systemtap.syscall/sendto.c:Update expected output of test cases

8 years agoTweak autocast-defined interactions further
Josh Stone [Sat, 9 Jul 2016 01:21:49 +0000 (18:21 -0700)]
Tweak autocast-defined interactions further

- collapse basic @defined($foo) right away.
- last-ditch collapse other @defined(expr) to 1 or 0 depending on pe_unknown.
- run that last-ditch effort *before* turning on assert_resolvability.
- only run extra dead_control_remover for optimized runs
- in var_expanding_visitor, pass *any* unchanged expr through, so they
  may be decided later.  (e.g. for @choose_defined ternaries)

8 years agoUpdate aux_syscalls.stp for android 3.0 kernels.
Alexander Lochmann [Fri, 8 Jul 2016 15:30:12 +0000 (10:30 -0500)]
Update aux_syscalls.stp for android 3.0 kernels.

* tapset/linux/aux_syscalls.stp: Include syscall.h for kernels (like
  android 3.0 kernels) with no asm/syscall.h

8 years agoUpdate fanotify.c syscall test case.
David Smith [Fri, 8 Jul 2016 15:26:57 +0000 (10:26 -0500)]
Update fanotify.c syscall test case.

* testsuite/systemtap.syscall/fanotify.c (main): Fix small test case bug
  found by new *buffer_quoted functions.

8 years agoFix testsuite redirection problems.
David Smith [Fri, 8 Jul 2016 14:02:54 +0000 (09:02 -0500)]
Fix testsuite redirection problems.

* testsuite/systemtap.server/server.exp: Fix command redirection to avoid
  creation of '&1' file.
* testsuite/systemtap.stress/tapset_functions.exp: Use command
  redirection.

8 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Cody Santing [Thu, 7 Jul 2016 20:18:31 +0000 (16:18 -0400)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

8 years agoPR19489: Update probe aliases to use new *buffer_quoted functions
Cody Santing [Thu, 7 Jul 2016 20:09:47 +0000 (16:09 -0400)]
PR19489: Update probe aliases to use new *buffer_quoted functions

tapset/linux/nd_syscalls.stp: add_key uses new function
tapset/linux/nd_syscalls2.stp: pwrite, pwrite32, and write use new function
tapset/linux/syscalls.stp: add_key uses new function
tapset/linux/syscalls2.stp: pwrite and pwrite32 use new function
tapset/linux/tty.stp: write and read use new function
tapset/uconversions.stp: Update typo in documentation comments

8 years agoFix cputime_to_msecs() macro for broken android 3.0 kernels.
Alexander Lochmann [Thu, 7 Jul 2016 19:22:46 +0000 (14:22 -0500)]
Fix cputime_to_msecs() macro for broken android 3.0 kernels.

* tapset/linux/task_time.stp (cputime_to_msecs): Fix macro definition for
  certain android kernels that have an extra semicolon on the
  cputime_to_usecs() macro.

8 years agoUpdated PR_SET_MM_* flag list for kernels that don't support all the flags.
Alexander Lochmann [Thu, 7 Jul 2016 15:57:34 +0000 (10:57 -0500)]
Updated PR_SET_MM_* flag list for kernels that don't support all the flags.

8 years agoPR19953: netfilter packet content dumping
Felix Lu [Thu, 30 Jun 2016 18:54:18 +0000 (14:54 -0400)]
PR19953: netfilter packet content dumping

* tapset/linux/conversions.stp: New overloaded instance of
  kernel_buffer_quoted using MAXSTRINGLEN by default.
  Mark kernel_buffer* with /* pure */.
* tapset/linux/netfilter.stp: New data_str and data_hex variables
  containing buffer contents.
* translate.cxx: Increase memory dump limit to PAGE_SIZE for memory
  dumping sk_buff page fragments in c_unparser::visit_print.
* systemtap.examples/network/packet_contents.stp: Example script.
* systemtap.examples/network/packet_contents.txt: Example demo.

8 years agoMerge branch 'csanting/PR19489'
Cody Santing [Mon, 4 Jul 2016 16:50:25 +0000 (12:50 -0400)]
Merge branch 'csanting/PR19489'

8 years agoPR19489: Update user/kernel_buffer_quoted_warn tapset functions to _error
Cody Santing [Mon, 4 Jul 2016 16:42:55 +0000 (12:42 -0400)]
PR19489: Update user/kernel_buffer_quoted_warn tapset functions to _error

/NEWS: Include information on new functions
/tapset/linux/aux_syscalls.stp: Uses new buffer mode of _stp_text_str
/tapset/linux/conversions.stp: Update kernel_buffer_quoted_warn to _error
/tapset/uconversions.stp: Updated user_buffer_quoted_warn to _error

8 years agoPR19489: Add *_buffer_quoted tapset functions
Cody Santing [Mon, 4 Jul 2016 14:20:50 +0000 (10:20 -0400)]
PR19489: Add *_buffer_quoted tapset functions

runtime/stp_string.c: Update _stp_text_str to handle '\0' and take a buffer flag
runtime/stp_string.h: Update _stp_text_str prototype
tapset/linux/aux_syscalls.stp: Update calls to _stp_text_str
tapset/linux/conversions.stp: Add user_buffer_quoted and _warn tapset functions
tapset/linux/syscalls2.stp: Update syscall.write to use user_buffer_quoted
tapset/string.stp: Update calls to _stp_text_str
tapset/uconversions.stp: Add kernel_buffer_quoted and _warn tapset functions

8 years agoPartial PR19905 fix: Fix nd_syscall.{preadv2,pwritev2).
David Smith [Fri, 1 Jul 2016 18:59:51 +0000 (13:59 -0500)]
Partial PR19905 fix: Fix nd_syscall.{preadv2,pwritev2).

* tapset/linux/nd_syscalls2.stp (nd_syscall.preadv2): Fix grabbing the
  'flags' argument.
  (nd_syscall.pwritev2): Ditto.

8 years agoTest cover PR20307 (commit e5c209c).
Martin Cermak [Fri, 1 Jul 2016 07:28:40 +0000 (09:28 +0200)]
Test cover PR20307 (commit e5c209c).

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 agoIncrease the difficulty of semok/autocast14.stp
Josh Stone [Wed, 22 Jun 2016 19:09:05 +0000 (12:09 -0700)]
Increase the difficulty of semok/autocast14.stp

8 years agoPR18079: support nested autocast / @defined
Frank Ch. Eigler [Wed, 22 Jun 2016 15:43:33 +0000 (11:43 -0400)]
PR18079: support nested autocast / @defined

We now perform const-folding & dead-code-elision during the type
resolution loop, whenever an autocast expression gets evaluated.  This
way, @defined(foo()->mm) type expressions can work as nature intended.

This requires @defined() not to be short-circuit evaluated to 0 during
a random const_folding process, so a flag is introduced to control its
preservation or collapsing.  For the last (assert_resolvability) pass
in the type resolution loop, this flag is set to true, so that
genuinely unresolvable @defined($expressions) do get mapped to 0 in
time for a last elision.

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

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