| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
| |
|
|
|
|
| |
a last resort. Cert db passwords will be going away soon(tm).
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* tapsets.cxx (dwarf_ and kprobe_derived_probe_group): Redefine KRETACTIVE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* runtime/transport/transport.h: Removed extra declarations of
_stp_transport_init() and _stp_transport_close().
|
|
|
|
|
|
|
|
| |
Per Breno's guidance, I'm removing the accent from the 'a' in Leitao.
We can normalize it either way -- I just want it to be consistent.
This only has an effect on git shortlog and git blame, but we do use
shortlog in our AUTHORS queries.
|
|
|
|
| |
Adding the TTY tapset to the .tmpl Reference documentation
|
|
|
|
|
| |
This is a basic test to assure that the tty tapset is working
compiling and working properly
|
|
|
|
|
|
| |
A new tapset that supports tty devices and consequently serial
devices. It is just a basic implementation that can be extended
as demands appears
|
|\ |
|
| |
| |
| |
| | |
* tapsets.cxx (saveargs): check the accessibility.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We had a race where the probe setup could be called during/after the
probe shutdown in abnormal circumstances, which leads to kernel
callbacks still registered after module unload. (BOOM)
Now the setup/shutdown activities and related flags are guarded by a
mutex, so we should have strict ordering.
* runtime/transport/transport.c (_stp_transport_mutex): New.
(_stp_handle_start): Grab the mutex, and make sure we're not exiting.
(_stp_cleanup_and_exit): Grab the mutex.
(_stp_lock_inode, _stp_unlock_inode): Use kernel version for checking
inode locking type.
|
| |
| |
| |
| | |
boost::circular_buffer for time and data storage.
|
|/
|
|
|
| |
* grapher/StapParser.hxx (ioCallback): Test return value from findTaggedValue
properly.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
This enables much cleaner build output from automake. To re-enable the
verbose commands, pass --disable-silent-rules to configure, or use V=1
at make time.
* configure.ac: Enable AM_SILENT_RULES by default.
|
| |
| |
| |
| |
| | |
* testsuite/systemtap.base/onoffprobe.exp: Wait for up to 10 seconds for
the procfs file to be created.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Within a probe body, the "out" label starts the normal exit path,
including unlocking whatever globals are used in that probe. Since the
unprivileged safety-net checks are before the locks are ever grabbed, we
should bypass the unlock on the way out.
* elaborate.cxx (derived_probe::emit_process_owner_assertion): Use
"return" instead of "goto out".
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For scripts with thousands of probes, we save a fair amount of code-gen
time in pass-4 by having the common locking code extracted into shared
functions.
* runtime/probe_lock.h (stp_lock_probe, stp_unlock_probe): New.
* translate.cxx (c_unparser::emit_lock_decls): New, emits a static
const array of locks needed for each probe.
(c_unparser::emit_locks): Just call stp_lock_probe.
(c_unparser::emit_unlocks): Just call stp_unlock_probe.
|
| |
| |
| |
| |
| | |
This is just a workaround for PR10821, and should be reverted when that
bug is fixed.
|
| |
| |
| |
| | |
* dwflpp.cxx (dwflpp::express_as_string): Limit stack depth to 32.
|
| |
| |
| |
| |
| | |
* buildrun.cxx (compile_pass): Add the warning to limit the frame size
even lower than the Kbuild default (only works for gcc 4.4+).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
* grapher/grapher.cxx (ChildDeathReader::reap): New function.
(StapLauncher): Keep a list of instantiated parsers.
(StapLauncher::cleanup): Kill off all launched stap processes.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* grapher/StapParser.hxx (StapParser): Change _win and _widget from
references to pointers.
* grapher/StapParser.cxx (ioCallback): Ditto.
* grapher/grapher.cxx (StapLauncher, GraphicalStapLauncher): Rewrite
to make GraphicalStapLauncher a derived class of StapLauncher.
(main): Accept graphing data from stdin with a "-" argument.
|
|/
|
|
|
|
|
|
| |
* grapher/StapParser.hxx (_inFd, getInFd, setInFd): new member and fuctions
* grapher/StapParser.cxx (ioCallback): Use _inFd variable
instead of stdin.
* grapher/grapher.cxx (StapLauncher::launch): Don't read input from stap on
stdin; use the the read end of the pipe.
|
|\ |
|
| |
| |
| |
| |
| | |
* runtime/unwind.c (processCFI): Fail if the number of instructions is
larger than MAX_CFI (currently 512).
|
| |
| |
| |
| |
| | |
* runtime/unwind.c (unwind_frame): Check end read from cie or fde doesn't
go passed end of unwind table.
|
| |
| |
| |
| |
| |
| | |
* runtime/unwind.c (cie_for_fde): Take table and table_len into account.
(fde_pointer_type): Likewise.
* runtime/unwind/unwind.h: Adjust function prototypes.
|
| |
| |
| |
| |
| | |
* translate.cxx (MAX_UNWIND_TABLE_SIZE): New define.
(dump_unwindsyms): Check debug_len and eh_len against new limit.
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| | |
* tapset/task.stp: Use @cast(...,"task_struct","kernel<linux/sched.h")
throughout to operate dwarf-free.
|
|/
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Guided by pahole, I've shaved off a few padding bytes here and there.
New sizes on x86_64:
stap_task_finder_target 192 -> 184
stap_itrace_probe 216 -> 208
stap_utrace_probe 328 -> 312
stap_uprobe_tf 200 -> 192
stap_uprobe_spec 48 -> 40
I only changed field layouts, not types or names, so this should be
perfectly safe. (FLW)
|
| |
|
|
|
|
|
| |
* stat-common.c (_stp_stat_print_histogram_buf): Fix HIST_PRINTF
parameter passing.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* tapsets.cxx (visit_target_symbol): When catching semantic_error,
fill in token value if unset. Can happen for loc2c DIE() msgs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uprobe_fork_uproc() runs with parent_uproc->rwsem locked.
However uprobe_mk_process() that gets called within uprobe_fork_uproc()
also locks child_uproc->rwsem after initializing it.
Lockdep report confuses this to acquiring a lock that already has been
acquired and suggests using sub-classes.
The alternatives we have are:
1. use classes level to distinguish different uproc structures.
2. unlock parent_uproc->rwsem before we call uprobe_fork_uproc().
3. dont try locking child_uproc->rwsem; since we are protected by
uproc_mutex as well as parent_uproc->rwsem;
We use the last approach.
Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
---
|
|
|
|
|
|
|
|
| |
Reported by Wenji, these SEC_* symbols were enums rather than macros,
so instead of individual #ifdefs ...
* stapsslerr.h: use NSS_{VMAJOR/VMINOR/VPATCH} to detect 3.12.4 or later
for the two recent error symbols.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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".
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Made sure nss includes will error even if only 1 header
isn't usable. Added grapher dependencies gtkmm and boost headers.
* Makefile.in: Regenerated.
* config.in: Ditto.
* configure: Ditto.
* doc/Makefile.in: Ditto.
* doc/SystemTap_Tapset_Reference/Makefile.in: Ditto.
* grapher/Makefile.am: Use libglade CFLAGS/LIBS.
* grapher/Makefile.in: Regenerated.
|