summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* PR 10822 fixed by waiting for the procfs file.David Smith2009-10-221-1/+19
| | | | | * testsuite/systemtap.base/onoffprobe.exp: Wait for up to 10 seconds for the procfs file to be created.
* Correct the safety-net escape WRT lockingJosh Stone2009-10-211-1/+3
| | | | | | | | | | 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".
* Refactor probe locking into shared functionsJosh Stone2009-10-212-89/+112
| | | | | | | | | | | | 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.
* Relax the -Wframe-larger-than checkJosh Stone2009-10-211-1/+3
| | | | | This is just a workaround for PR10821, and should be reverted when that bug is fixed.
* Ensure that DWARF keeps loc2c to a reasonable stack depthJosh Stone2009-10-211-0/+7
| | | | * dwflpp.cxx (dwflpp::express_as_string): Limit stack depth to 32.
* PR10750 cont'd: Build with -Wframe-larger-than=512Josh Stone2009-10-211-0/+3
| | | | | * buildrun.cxx (compile_pass): Add the warning to limit the frame size even lower than the Kbuild default (only works for gcc 4.4+).
* PR10750: Enforce a reasonable limit on # of varargsJosh Stone2009-10-213-0/+24
| | | | | | | | | | 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.
* Merge branch 'unwind_robust'Mark Wielaard2009-10-213-9/+51
|\
| * Limit the number of call frame instructions we process in the unwinder.Mark Wielaard2009-10-201-0/+7
| | | | | | | | | | * runtime/unwind.c (processCFI): Fail if the number of instructions is larger than MAX_CFI (currently 512).
| * Make sure cie and fde end point to sane values in while doing unwind_frame.Mark Wielaard2009-10-201-0/+11
| | | | | | | | | | * runtime/unwind.c (unwind_frame): Check end read from cie or fde doesn't go passed end of unwind table.
| * Be paranoid about table size resolving cie_for_fde and fde_pointer_type.Mark Wielaard2009-10-202-9/+22
| | | | | | | | | | | | * runtime/unwind.c (cie_for_fde): Take table and table_len into account. (fde_pointer_type): Likewise. * runtime/unwind/unwind.h: Adjust function prototypes.
| * Add limit on unwind table size we accept.Mark Wielaard2009-10-201-0/+11
| | | | | | | | | | * translate.cxx (MAX_UNWIND_TABLE_SIZE): New define. (dump_unwindsyms): Check debug_len and eh_len against new limit.
* | Added testsuite to test xulrunner sdt markers.Stan Cox2009-10-204-3/+136
| | | | | | | | | | | | | | 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.
* | RHBZ519314: define task_struct cast to operate without debuginfoFrank Ch. Eigler2009-10-201-7/+7
| | | | | | | | | | * tapset/task.stp: Use @cast(...,"task_struct","kernel<linux/sched.h") throughout to operate dwarf-free.
* | tcl.exp path fix.Stan Cox2009-10-201-1/+1
|/ | | | tcl.exp (run_tests): Fix stap path.
* Add testsuite for tcl sdt markers.Stan Cox2009-10-192-1/+167
| | | | | dtrace.in (provider::generate): Set enabled to true until .so is resolved. tcl.exp: New testsuite for tcl sdt markers modelled after mysql.
* Improve some runtime struct layoutsJosh Stone2009-10-193-4/+4
| | | | | | | | | | | | | | 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)
* bemoan that _stp_*printf can't be protected with gcc attribute printfFrank Ch. Eigler2009-10-191-1/+5
|
* fix 32-bit compatibility for @hist_log printingWenji Huang2009-10-191-1/+1
| | | | | * stat-common.c (_stp_stat_print_histogram_buf): Fix HIST_PRINTF parameter passing.
* PR10799: warn on possibly uintended local-vs-global namespace collisionFrank Ch. Eigler2009-10-195-12/+35
| | | | | | | | | * 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.
* provide error message token/context if loc2c doesn'tFrank Ch. Eigler2009-10-191-0/+1
| | | | | * tapsets.cxx (visit_target_symbol): When catching semantic_error, fill in token value if unset. Can happen for loc2c DIE() msgs.
* Avoid lockdep warnings.Srikar Dronamraju2009-10-192-14/+34
| | | | | | | | | | | | | | | | | | | | 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> ---
* PR10331: build fix for older nss reduxFrank Ch. Eigler2009-10-161-3/+2
| | | | | | | | 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.
* Fix transok/tval-opt.stp testcase. Pick diffent function and non-empty block.Mark Wielaard2009-10-151-1/+2
| | | | | | | | | | | | 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".
* Updated checking for grapher dependencies.David Smith2009-10-158-269/+588
| | | | | | | | | | | | * 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.
* PR10331: build fix for older nssFrank Ch. Eigler2009-10-151-0/+4
| | | | | | | * stapsslerr.h: #ifdef-conditionalize a few of the error codes, apparently defined some time after NSS 3.12.2. Reported-By: Wenji Huang <wenji.huang@oracle.com>
* Add boost-devel build requirement for the grapher.David Smith2009-10-151-0/+5
|
* Fix $$targets in dwarf probesJosh Stone2009-10-141-1/+1
| | | | | | My print_format refactoring in d5e178c1 missed an improperly-named token, an sprint that should be sprintf. Since the token value is now significant, that name needs to be correct.
* PR10331: more ssl error textFrank Ch. Eigler2009-10-141-0/+42
| | | | | | * stapsslerr.h: Added a few blurbs from mozilla sources. Added mozilla copyright/license header block, which lets us use this under GPLv2.
* PR10331: improve nss error message handlingFrank Ch. Eigler2009-10-146-72/+331
| | | | | | | | | * stapsslerr.h: New file containing NSS* error number to string mappings. Originally from mozilla NSS documentation, also seen in other GPLv2 software. * nsscommon.c (nssError): Print error number, and text from <stapsslerr.h>. * stap-{client,server}-connect.c (errWarn): Standardize on nssError(). * Makefile.am (nss binaries): Also link in nsscommon.c.
* Report experssion stack slot use back from loc2c.Roland McGrath2009-10-144-9/+23
|
* check for module-building Makefile more clearlyFrank Ch. Eigler2009-10-141-6/+5
| | | | | * buildrun.cxx (compile_pass): stat the Makefile, not just the build/ directory.
* Merge branch 'master' of ssh://sourceware.org/git/systemtapTim Moore2009-10-141-0/+2
|\
| * Add DTRACE_PROBE10.Mark Wielaard2009-10-141-0/+2
| | | | | | | | | | | | We already had STAP_PROBE10, but not DTRACE_PROBE10 yet. * includes/sys/sdt.h: Declare DTRACE_PROBE10 as STAP_PROBE10.
* | cleanup of graph data parser, using Boost functions where usefulTim Moore2009-10-143-36/+34
|/ | | | | | * grapher/StapParser.cxx (commaSplit): Use Boost string split function (findTaggedValue): Return bool instead of position (ioCallback): Avoid using hard-coded string lengths
* Merge branch 'master' of ssh://wenji@sources.redhat.com/git/systemtapWenji Huang2009-10-1411-164/+138
|\
| * Merge branch 'master' of sourceware.org:/git/systemtapJosh Stone2009-10-133-19/+18
| |\
| * | Consolidate print_format creationJosh Stone2009-10-137-98/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We almost had a factory in print_format::parse_print, so let's take that the rest of the way. This way we don't have so much duplication in initializing the print flags. * staptree.cxx (print_format::parse_print): Replaced with... (print_format::create): New factory to parse and create print_formats. * elaborate.cxx (add_global_var_display): Use this factory. * parse.cxx (parser::parse_symbol): Ditto. * tapset-mark.cxx (mark_var_expanding_visitor::visit_target_symbol_context): Ditto. * tapset-utrace.cxx (utrace_var_expanding_visitor::visit_target_symbol_arg): Ditto. * tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol_context): Ditto. (tracepoint_var_expanding_visitor::visit_target_symbol_context) Ditto.
| * | Refactor some of the histogram printingJosh Stone2009-10-131-56/+29
| | | | | | | | | | | | | | | | | | | | | * runtime/stat-common.c (reprint_buf): Removed. (_stp_stat_print_histogram_buf): Use a local HIST_PRINTF macro to abstract the buffer management. Also convert reprint_buf calls to either %* formats or simple for-loops.
| * | Add buildok tests for sprint[ln](@hist_*)Josh Stone2009-10-131-0/+4
| | |
| * | PR10257: Add support for sprint[ln](@hist_*).Przemyslaw Pawelczyk2009-10-133-35/+64
| | | | | | | | | | | | | | | | | | | | | | | | * parse.cxx (parser::parse_symbol): Add sprint[ln] to @hist_* hack. * runtime/stat-common.c: Replace reprint with new reprint_buf, add more generic _stp_stat_print_histogram_buf and call it from the older one. Also correct some formatting issues. * translate.cxx (c_unparser::visit_print_format): Add sprint case.
| * | PR5434: Fix syscall.nfsservctl.Przemyslaw Pawelczyk2009-10-131-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | Use proper $vars according to CONFIG_NFSD and CONFIG_COMPAT in syscall.nfsservctl and mask it out along with return probe if CONFIG_NFSD != "[ym]" && CONFIG_COMPAT != "y". * tapset/syscalls2.stp (syscall.nfsservctl): Fix it.
* | | PR10746: update test cases related to probe process.*Wenji Huang2009-10-144-7/+20
| |/ |/| | | | | | | | | | | | | * 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.
* | runtime shutdown errors: simplify, improve error specificityFrank Ch. Eigler2009-10-133-19/+18
|/ | | | | | | | * transport/control.c (*_cmd): Return -Ecodes rather than "-1" from file_operations callbacks. * staprun/ctl.c (init_ctl_channel): Return distinct error codes. * staprun/staprun.c (remove_module): Skip connection attempt to .ctl file; just do delete_module() with O_NONBLOCK.
* Let semko/utrace.stp fail even with CONFIG_UTRACE=yJosh Stone2009-10-131-1/+1
|
* Add a test for CONFIG_FOO wildcardsJosh Stone2009-10-131-0/+25
|
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-10-131-60/+54
|\
| * PR10761: pass -v's to final "staprun -d" if appropriateFrank Ch. Eigler2009-10-131-60/+54
| | | | | | | | | | * mainloop.c (cleanup_and_exit): Remove non-BUG9788_WORKAROUND branch. Remove execlp branch. Pass -v to staprun-d if verbose.
* | Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-10-1351-778/+2069
|\|
| * PR 10575. Improves running target commands.David Smith2009-10-131-18/+43
| | | | | | | | | | | | | | * runtime/staprun/mainloop.c (signal_usr1): Renamed from signal_dontcare. Sets a new variable, usr1_interrupt. (start_cmd): Avoids pause() race condition by switching to blocking SIGUSR1, then waiting on SIGUSR1 with sigsuspend().