| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since 2.6.25, kretprobes can carry a data packet to be filled in an
entry_handler. This patch lets us store our implicitly-saved $target
variables in .return probes in that data area.
* tapset/kretprobe.stp: New get/set functions for kretprobe data.
* translate.cxx (c_unparser::emit_common_header): Add context->pi_longs.
* tapsets.cxx
(dwarf_var_expanding_visitor::visit_target_symbol_saved_return): Switch
between the old and new methods of saving $vars in .return probes.
(dwarf_var_expanding_visitor::gen_mapped_saved_return): The old way.
(dwarf_var_expanding_visitor::gen_kretprobe_saved_return): The new way.
(dwarf_derived_probe::join_group): Don't register paired entry-handlers.
(dwarf_derived_probe::dwarf_derived_probe): Remember saved-var details.
(dwarf_derived_probe_group::emit_module_decls): Output saved-var details.
Also split the kretprobe handler whether we're on entry or return.
(dwarf_derived_probe_group::emit_module_init): Prepare the entry handler.
* testsuite/systemtap.base/kretprobe-vars.stp: Test implicit $var saving.
|
|
|
|
| |
(And incidentally re-enable quiet builds at the same time...)
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
Makefile.in
configure
doc/Makefile.in
doc/SystemTap_Tapset_Reference/Makefile.in
grapher/Makefile.in
testsuite/configure
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* tapset/aux_syscalls.stp(_sock_type_str): Rewrote in embedded-C and added
socket flags support.
(_sock_flags_str): New function.
* tapset/syscalls.stp: syscall.accept prefers to use sys_accept4 when it
exists. Added support for sys_accept4's 'flag' parameter.
* testsuite/systemtap.syscall/net1.c (main): Updated regular expression to
handle the new 'flags' argument.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* testsuite/configure.ac (--enable-testapps): New option.
* testsuite/Makefile.am (TESTAPPS): Pass to dejagnu.
* testsuite/systemtap.base/{xulrunner,tcl,mysql,postgres}:
Moved under new systemtap.apps/ subdirectory.
* testsuite/systemtap.apps/stap-tcl.sh: New file to build tcl.
* testsuite/systemtap.apps/stap-tcl.stp: New file to test tcl.
* testsuite/systemtap.apps/tcl.exp: New simplified test driver.
* dtrace.in: Disable STAP_HAS_SEMAPHORES as they don't work on shlibs yet.
* includes/sys/sdt.h (STAP_SEMAPHORE): Include __builtin_expect for unlikely.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
* testsuite/systemtap.context/args.tcl: Increased timeout. If tests do
timeout, fail (instead of silently failing).
* testsuite/systemtap.context/num_args.tcl: Ditto.
* testsuite/systemtap.context/backtrace.tcl: Increase timeout.
* testsuite/systemtap.context/pid.tcl: Ditto.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* testsuite/systemtap.syscall/test.tcl: Substitute '[[[[' and ']]]]' for
'(' and ')'. This allows us to get unquoted parens.
* testsuite/systemtap.syscall/test-debug.tcl: Matches substitute logic of
test.tcl.
* testsuite/systemtap.syscall/README: Document '[[[[' and ']]]]'.
* testsuite/systemtap.syscall/chmod.c: Handle optional O_LARGEFILE flag in
open calls.
* testsuite/systemtap.syscall/dir.c: Ditto.
* testsuite/systemtap.syscall/mmap.c: Ditto.
* testsuite/systemtap.syscall/openclose.c: Ditto.
* testsuite/systemtap.syscall/readwrite.c: Ditto.
* testsuite/systemtap.syscall/stat.c: Ditto.
|
| |
| |
| |
| |
| | |
This is a basic test to assure that the tty tapset is working
compiling and working properly
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
* testsuite/systemtap.base/onoffprobe.exp: Wait for up to 10 seconds for
the procfs file to be created.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we leave the number of args unbounded, then an excessively-sized
printf could cause a kernel stack overflow. I've arbitrarily chosen 32
as our new maximum.
* translate.cxx (c_unparser::visit_print_format): Throw if >32 args.
* testsuite/transko/varargs.stp: Assert that 33 args aren't allowed.
* testsuite/transok/varargs.stp: Assert that 32 args are ok.
|
| |
| |
| |
| |
| |
| |
| | |
xulrunner.exp: New testsuite, modelled after mysql.exp.
mysql.exp (stap-mysql.sh): Use installed stap.
postgres.exp (stap-mysql.sh): Use installed stap.
tcl.exp (stap-mysql.sh): Use installed stap.
|
| |
| |
| |
| | |
tcl.exp (run_tests): Fix stap path.
|
| |
| |
| |
| |
| | |
dtrace.in (provider::generate): Set enabled to true until .so is resolved.
tcl.exp: New testsuite for tcl sdt markers modelled after mysql.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* elaborate.cxx (find_var): Take extra token parameter.
Look for cross-file global variable resolution, signal
a warning.
* testsuite/systemtap.examples/io/traceio2.stp: Fix it.
* testsuite/systemtap.syscall/sys.stp: Fix it.
* NEWS: Document it.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This testcase succeeded just because the value being set couldn't be
found. So the error message being compared was the same. Set -o pipefail
to catch that case. On vta compiled kernels it failed because the optimizer
turned { statement } into statement. So pick a function and argument which
location can always be found and add an extra 'next' statement so the
block isn't folded.
* testsuite/transok/tval-opt.stp: Set -o pipefail. Add 'next' to make
sure block isn't empty. Use "do_filp_open" and "mode".
|
|\ |
|
| | |
|
|/
|
|
|
|
|
|
| |
* testsuite/semok/utrace01.stp: Switch by CONFIG_UTRACE.
* testsuite/systemtap.base/bz10294.stp: Ditto.
* testsuite/systemtap.base/bz6905.stp: Ditto.
* testsuite/systemtap.base/statement.exp: Mark untested if
non-utrace kernel.
|
| |
|
| |
|
|
|
|
|
|
|
| |
* tapset/task_time.stp: New tapset.
* testsuite/buildok/task_test.stp: Add new task_time functions.
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Add new section on
Task Time Tapset. Include tapset/task_time.stp.
|
|
|
|
|
|
|
| |
* tapset-itrace.exp (itrace_derived_probe ctor): Fail if !CONFIG_UTRACE.
* tapset-utrace.exp (utrace_derived_probe ctor): Fail if !CONFIG_UTRACE.
* tapsets.cxx (dwarf_builder::build): Fail process.* if !CONFIG_UTRACE.
* testsuite/semko/utrace.stp: New test.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
testsuite/systemtap.examples/
* check.exp (extract_tag): Log extracted tags. Tolerate embedded '$'.
(run_command): Pass through commands to sh -c without eval quoting.
* README: Document "sh -c"-ness of check_* tags.
* *.meta: Fix quoting, add a few check_support predicates.
|
|
|
|
| |
state changes. This work was original inspired by Stephen Hemminger's TCP cwnd snooper (net/ipv4/tcp_probe.c). Tcp_trace is a helpful tool for troubleshooting connection performance issues.
|
|
|
|
|
|
|
|
| |
* session.h (kernel_config[]): New session field.
* main.cxx (parse_kernel_config): Populate it.
* parse.cxx (eval_comparison): Use it.
* testsuite/buildok/utrace.stp, testsuite/parseok/kconfig.stp: New tests.
* NEWS, stap.1.in, doc/langref.tex: Mention it.
|
|
|
|
|
|
|
| |
* tapset/proc_mem.stp: New tapset.
* testsuite/buildok/proc_mem.stp
* doc/SystemTap_Tapset_Reference/tapsets.tmpl (memory_stp): Include
tapset/proc_mem.stp.
|
|
|
|
|
| |
* testsuite/systemtap.base/const_value.c: Allow inlining since PR10726 was
fixed.
|
|
|
|
|
|
|
|
| |
* testsuite/systemtap.base/const_value.exp: Handle both const_value blocks
and address separately. XFAIL second test as PR10739.
* testsuite/systemtap.base/const_value.stp: Only query baz const value.
* testsuite/systemtap.base/const_value_func.c: New test for bar address.
* testsuite/systemtap.base/const_value_func.stp: Likewise.
|
|
|
|
|
|
| |
* testsuite/systemtap.base/const_value.c: New test.
* testsuite/systemtap.base/const_value.exp: Likewise.
* testsuite/systemtap.base/const_value.stp: Likewise.
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch adds kernel tracepoints based probes to the scheduler tapset
along with the testcase, scheduler-test-tracepoints.stp and an example
script, sched_switch.stp.
Signed-off-by: Kiran Prakash <kiran@linux.vnet.ibm.com>
Signed-off-by: Josh Stone <jistone@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libdwfl tries to resolve all relocations in a module debuginfo file and
if it cannot find a symbol used in a relocation it will fail when
dwfl_module_getdwarf() is called. So we must make sure all possible
dependencies of the module are also in the dwfl. We do this by trying
to find and parse the modules.dep file and insert all dependencies
into the dwfl.
* setupdwfl.cxx (elfutils_kernel_path): Lift from setup_dwfl_kernel and
make static.
(is_comma_dash): New function.
(modname_from_path): Likewise.
(setup_mod_deps): Likewise.
(setup_dwfl_report_kernel_p): Call setup_mod_deps().
* testsuite/buildok/pr10678.stp: New test.
|
| |
|
|
|
|
| |
* testsuite/systemtap.base/cmd_parse.exp: Remove temporary module.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* testsuite/buildok/fortysix.stp: Add -w.
* testsuite/buildok/fortytwo.stp: Likewise.
* testsuite/buildok/four.stp: Avoid empty begin.
* testsuite/buildok/memory-all-probes.stp: Add -w.
* testsuite/buildok/nfsd-all-probes.stp: Likewise.
* testsuite/buildok/nine.stp: Likewise.
* testsuite/buildok/one.stp: Use q.
* testsuite/buildok/printf.stp: Remove unused foo(), printf x.
* testsuite/buildok/process-all-probes.stp: Add -w.
* testsuite/buildok/scheduler-all-probes.stp: Likewise.
* testsuite/buildok/scsi-all-probes.stp: Likewise.
* testsuite/buildok/signal-all-probes.stp: Likewise.
* testsuite/buildok/sixteen.stp: log in foo().
* testsuite/buildok/socket-all-probes.stp: Add -w.
* testsuite/buildok/stat_insert.stp: Declare x, y global.
* testsuite/buildok/syscall.stp: Add -w.
* testsuite/buildok/tcp-all-probes.stp: Likewise.
* testsuite/buildok/thirtyone.stp: Likewise.
* testsuite/buildok/twentyeight.stp: log absolute.
* testsuite/buildok/twentyfour.stp: Add -w.
* testsuite/buildok/udp-all-probes.stp: Likewise.
* testsuite/buildok/vfs-all-probes.stp: Likewise.
|
|
|
|
| |
* testsuite/systemtap.printf/ring_buffer.exp: New test.
|
|
|
|
|
|
|
|
|
| |
* tapset/random.stp (randint): Make it 1-arity (imply min=0).
Document with kerneldoc.
* doc/Systemtap_Tapset_Reference/tapsets.tmpl: Extract the docs.
* runtime/arith.c (_stp_random_pm_u): Rename without _pm.
(_stp_random_pm): Rewrite in terms of ..._u.
* testsuite/random.stp: Adapt & simplify.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* tapset/logging.stp (ftrace): New function.
(*): Add kerneldoc to other functions.
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Process logging.stp.
* stapfuncs.3stap.in: Remove "LOGGING" section, now redundant.
* runtime/autoconf-trace-printk.c: New autoconf test.
* buildrun.cxx (compile_pass): Build it.
* NEWS: Mention it.
* testsuite/buildok/logging.stp: Test it.
|
| |
|
|
|
|
|
|
|
|
|
| |
Saves a couple of seconds per individual test by doing them all in one.
* testsuite/buildok/context_test.stp: Incorporate:
modname.stp, probefunc.stp, probemod.stp, symdata.stp, symname.stp,
uaddr.stp, ustack.stp, usymdata.stp, usymname.stp.
Delete individual tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A lot of tests wait, sleep or use a timer for multiple seconds when that
is not necessary. Reduce the time waited so save test time.
* testsuite/systemtap.base/backtrace.stp: Exit after 100ms.
* testsuite/systemtap.base/badkprobe.exp: Likewise.
* testsuite/systemtap.base/global_end.stp: Likewise.
* testsuite/systemtap.base/itrace.exp: Wait 1 sec instead of 5 for each test.
* testsuite/systemtap.base/maxactive.exp: Likewise.
* testsuite/systemtap.base/onoffprobe.exp: Match and use modname, so
build script can be cached.
* testsuite/systemtap.base/onoffprobe.stp: Wait miliseconds instead of
seconds in each alias. Output module_name.
* testsuite/systemtap.base/poll_map.stp: Start after 100ms.
|