summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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().
| * parse: fix CONFIG_ matching typoFrank Ch. Eigler2009-10-131-1/+1
| | | | | | | | * parse.cxx (eval_pp_conditional): Flip rhs and lhs args for fnmatch().
| * Add the .call modifier to syscall entry probes.Przemyslaw Pawelczyk2009-10-122-704/+704
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inline functions do not have an indentifiable return point and require kernel built using VTA-enabled gcc to get tracking of variables. OTOH syscall functions are very rarely inlined (depending on the compiler mood), therefore filtering probes to include only non-inlined functions ensures consistent behavior between different kernels. This removes the problem of inaccessible variables in inlined syscalls that is described in comments #6-9 to PR5890 and gives us the status quo w.r.t. syscall probing, because before the commit solving PR10572 (b7478964) inline instances were masked anyway by non-inline ones. You can check whether you have inlined syscalls using following command: $ stap -l 'kernel.function("sys_*"),kernel.function("compat_sys_*")' \ 2>&1 -vvv | awk '/^selected inline/{print $5}' * tapset/syscalls.stp: Add .call to all entry probes. * tapset/syscalls2.stp: Ditto.
| * Add task_time tapset, functions to query time resource usage of current task.Mark Wielaard2009-10-093-0/+119
| | | | | | | | | | | | | | * 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/proc_mem.stp: Document function parameters.Mark Wielaard2009-10-091-0/+2
| |
| * PR10746: improve error message on utrace-less kernelsFrank Ch. Eigler2009-10-084-0/+11
| | | | | | | | | | | | | | * 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.
| * examples: regen indexesFrank Ch. Eigler2009-10-085-2/+37
| |
| * examples: add mbrwatch sampleFrank Ch. Eigler2009-10-082-0/+15
| |
| * testsuite: robustify check_* invocation of examples metaFrank Ch. Eigler2009-10-0815-18/+22
| | | | | | | | | | | | | | | | | | 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.
| * This script (tcp_trace) can be used to trace tcp connection parameters and ↵David J. Wilder2009-10-087-0/+817
| | | | | | | | 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.
| * PR10702: preprocessor conditional for kernel CONFIG_fooFrank Ch. Eigler2009-10-088-7/+80
| | | | | | | | | | | | | | | | * 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.
| * build: fix !HAVE_NSS caseFrank Ch. Eigler2009-10-071-2/+1
| | | | | | | | | | * staprun_funcs.c (assert_permissions): Move "check_signature_rc" variable inside #if HAVE_NSS.
| * Merge commit 'origin/master'Tim Moore2009-10-0732-334/+1224
| |\
| | * Remove the global derived_probe->semaphore mapJosh Stone2009-10-065-15/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead just make the semaphore address a member of derived_probe. * session.h (systemtap_session): Remove the map sdt_semaphore_addr. * elaborate.h (derived_probe): Add sdt_semaphore_addr directly. * tapsets.cxx (sdt_query::record_semaphore): Write the addr directly. (uprobe_derived_probe_group::emit_module_decls): Read it directly. * tapset-utrace.cxx (utrace_derived_probe_group::emit_probe_decl): Ditto
| * | Added man page for stapgraphTim Moore2009-10-075-13/+205
| | | | | | | | | | | | * grapher/stapgraph.1.in: new file
* | | Ensure that unprivileged-authorized probe point functions are hashed differentlyDave Brolley2009-10-137-16/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | than non-authorized ones for the purpose of removing duplicates. 2009-10-13 Dave Brolley <brolley@redhat.com> * elaborate.h (print_dupe_stamp_unprivileged): New static method of derived_probe. (print_dupe_stamp_unprivileged_process_owner): Likewise. * elaborate.cxx (print_dupe_stamp_unprivileged): New static method of derived_probe. (print_dupe_stamp_unprivileged_process_owner): Likewise. * tapset-been.cxx (print_dupe_stamp): New virtual method of be_derived_p robe and never_derived_probe. * tapset-utrace.cxx (print_dupe_stamp): New virtual method of utrace_der ived_probe * tapset-itrace.cxx (itrace_derived_probe::emit_unprivileged_assertion): Removed. (itrace_builder::check_unprivileged): Removed. * tapsets.cxx (print_dupe_stamp): New virtual method of uprobe_derived_p robe
* | | Generate safety net assertions in probe function not authorized for ↵Dave Brolley2009-10-098-91/+164
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unprivileged users. 2009-10-08 Dave Brolley <brolley@redhat.com> * elaborate.h (emit_unprivileged_assertion): New virtual method of deriv ed_probe. (emit_process_owner_assertion): New static method of derived_probe. (check_unprivileged): New virtual method of derived_probe_builder. (match_node::unprivileged_ok): Removed. (match_node::allow_unprivileged): Removed. (match_node::unprivileged_allowed): Removed. * elaborate.cxx (translate.h): #include it. (emit_unprivileged_assertion): New virtual method of derived_probe. (emit_process_owner_assertion): New static method of derived_probe. (check_unprivileged): New virtual method of derived_probe_builder. (match_node::unprivileged_ok): Removed. (match_node::allow_unprivileged): Removed. (match_node::unprivileged_allowed): Removed. (find_and_build): Don't check for unprivileged restrictions here. Call t he builder's check_unprivileged method. (alias_expansion_builder::check_unprivileged): New virtual method. * tapset-been.cxx (be_derived_probe::emit_unprivileged_assertion): New v irtual method. (be_builder::check_unprivileged): Likewise. (never_derived_probe::emit_unprivileged_assertion): Likewise. (never_builder::check_unprivileged): Likewise. (register_tapset_been): Don't call allow_unprivileged. * tapset-itrace.cxx (itrace_derived_probe::emit_unprivileged_assertion): New virtual method. (itrace_builder::check_unprivileged): Likewise. (register_tapset_itrace): Don't call allow_unprivileged. * tapset-utrace.cxx (utrace_derived_probe::emit_unprivileged_assertion): New virtual method. (utrace_builder::check_unprivileged): Likewise. (register_tapset_utrace): Don't call allow_unprivileged. * tapset-timer.cxx (timer_derived_probe::emit_unprivileged_assertion): N ew virtual method. (timer_builder::check_unprivileged): Likewise. (register_tapset_timers): Don't call allow_unprivileged. * tapsets.cxx (uprobe_derived_probe::emit_unprivileged_assertion): New v irtual method. (uprobe_builder::check_unprivileged): Likewise. (register_standard_tapsets): Don't call allow_unprivileged. (register_statement_variants): Remove unprivileged_ok_p parameter. Don't call allow_unprivileged. (register_function_variants): Likewise. (register_function_and_statement_variants): Likewise. (register_patterns): Don't call allow_unprivileged. * translate.cxx (emit_probe): Call v->emit_unprivileged_assertion.
* | Add proc_mem tapset, functions to query memory usage of the current process.Mark Wielaard2009-10-063-1/+210
| | | | | | | | | | | | | | * tapset/proc_mem.stp: New tapset. * testsuite/buildok/proc_mem.stp * doc/SystemTap_Tapset_Reference/tapsets.tmpl (memory_stp): Include tapset/proc_mem.stp.
* | PR10724: staprun: simplify permissions checking logicCharley Wang2009-10-062-19/+19
| | | | | | | | | | | | Pending advice from Frank and Dave, changed check_permission to return void and renamed it to assert_permission. assert_permission simply returns if permissions are okay, and calls exit(-1) if there are any permissions errors.
* | PR10726 remove testcase workaround.Mark Wielaard2009-10-061-3/+1
| | | | | | | | | | * testsuite/systemtap.base/const_value.c: Allow inlining since PR10726 was fixed.
* | PR10739 testcase. Split const_value test in two. Absolute const addr fails.Mark Wielaard2009-10-064-7/+68
| | | | | | | | | | | | | | | | * 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.
* | PR10726: Get the correct scope for statement(NUM)Josh Stone2009-10-051-230/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem in this bug is that our statement(NUM) lookup was only searching for the outermost function (not inlined) which contains the PC in question. When that PC happens to be the beginning of the function and also the beginning of an inline, the caching was using the wrong variable scope. The function/statement(NUM) lookup has been rewritten to bypass all of the CU and function iteration, and just go straight to a getscopes(pc) lookup, so it will now always use the innermost containing die for the variable scope. * tapsets.cxx (query_addr): New, short-circuit for numeric probes. (dwarf_query::query_module_dwarf): Route num probes to query_addr. (query_label): Assume now that we only need to handle _str probes. (query_dwarf_inline_instance): Ditto. (query_dwarf_func): Ditto. (query_cu): Ditto.
* | NEWS: Better gcc 4.5 DWARF support (kernel module deps, DW_AT_const_value).Mark Wielaard2009-10-051-0/+6
| |
* | Add tescase for DW_AT_const_value location descriptions.Mark Wielaard2009-10-053-0/+71
| | | | | | | | | | | | * testsuite/systemtap.base/const_value.c: New test. * testsuite/systemtap.base/const_value.exp: Likewise. * testsuite/systemtap.base/const_value.stp: Likewise.
* | Handle DW_AT_const_value as alternative to location description.Mark Wielaard2009-10-051-1/+10
| | | | | | | | | | | | * dwflpp.cxx (translate_location): Call c_translate_constant when attribute is DW_AT_const_value. (literal_stmt_for_local): Allow both DW_AT_location and DW_AT_const_value.
* | Make sure loc2c declare_noncontig_union for different locs don't overlap.Mark Wielaard2009-10-051-10/+25
| | | | | | | | | | | | | | * loc2c.c (declare_noncontig_union): Name union u_pieces for loc_noncontiguous or u_const for loc_constant. (translate_base_store): Use u_pieces for loc_noncontiguous. (translate_base_fetch): Likewise or u_const for loc_constant.
* | AUTHORS bump for KiranJosh Stone2009-10-021-0/+1
| |
* | Updates samples index for sched_switchJosh Stone2009-10-026-3/+49
| |
* | Scheduler Tapset based on kernel tracepointsKiran Prakesh2009-10-024-51/+429
| | | | | | | | | | | | | | | | | | 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>
* | indent tapset: make O(1) rather than O(n)Frank Ch. Eigler2009-10-021-5/+1
| | | | | | | | | | * tapset/indent.stp (_generic_indent): Use "%-*s" instead of string concatenation loop.
* | Fix stap-server bug. --unprivileged not processed if processed as first ↵Dave Brolley2009-10-021-1/+1
| | | | | | | | argument.
* | loc2c discontiguify loops for not small enough loc_constant.Mark Wielaard2009-10-021-0/+2
| | | | | | | | | | * loc2c.c (loc_constant): Add offset to size after creating piece in loc_constant loop.
* | PR10678 vta-gcc: module debuginfo: relocation refers to undefined symbolMark Wielaard2009-10-022-1/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Fixed grapher build.David Smith2009-10-011-0/+2
|/ | | | * systemtap.spec: Updated grapher's buildreqs and file list.
* Grapher support now also needs libglademm24-devel, version 2.6.7 or higher.Mark Wielaard2009-10-012-3/+3
| | | | | * configure.ac: Clarify fail/help string when gtkmm support wasn't found. * configure: Regenerated.
* Add DEBUG_UPROBES for sdt semaphores.Stan Cox2009-10-012-3/+22
| | | | | | * tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): Add DEBUG_UPROBES for sdt semaphores * dtrace.in (main): Add -k option to keep around the temp files.
* Print total memory usage in verbose mode after pass 1, 2 and 3.Mark Wielaard2009-10-011-6/+35
| | | | | | | Makes it easier to see which probe queries use lots of memory. * main.cxx (getmemusage): New function. (main): Use new function printing passes in verbose mode.
* Actually indent_thread() is a very useful function, butBreno Leitao2009-10-011-4/+16
| | | | | | | | | | | | | | | | | | | | | | sometimes you're probing something that is not related to any task, as an interrupt function, and if the application changes during the interrupt, the indentation gets confused. For example: 0 swapper(0): -> neo_copy_data_from_queue_to_uart 69 a.out(7659): -> neo_parse_modem 74 a.out(7659): -> neo_param 14 swapper(0): <- neo_copy_data_from_queue_to_uart 83 a.out(7659): -> jsm_carrier 86 a.out(7659): <- jsm_carrier 0 swapper(0): -> neo_parse_modem 94 a.out(7659): <- jsm_tty_set_termios 8 swapper(0): <- neo_parse_modem So, I decided to create a simpler function that doesn't consider the task. Much of the idea of this implementation came from Frank(Thanks)
* doc build: support older xmlto without --stringparm optionFrank Ch. Eigler2009-09-304-18/+73
| | | | | * configure.ac: Check for xmlto --stringparam support. * doc/Systemtap_Tapset_Reference/Makefile.am: Be sensitive to the result.
* dialog for choosing stap script and providing arguments to stap and the scriptTim Moore2009-09-305-7/+348
| | | | | | | | | * grapher/grapher.cxx (GraphicalStapLauncher): New class. (GrapherWindow constructor): Bind actions for graphical launcher buttons (GrapherWindow::setGraphicalLauncher): new method (GrapherWindow::on_menu_script_start): new method grapher/stap-start.glade, grapher/stap-start.gladep: new files grapher/Makefile.am: install stap-start.glade
* classes for launching stap and listening for its deathTim Moore2009-09-301-94/+221
| | | | | | | | | * grapher/grapher.cxx (ChildDeathReader): New class to handle I/O signalling death of a child. (GrapherWindow): Inherit from ChildDeathReader. (StapLauncher): New class for passing arguments to inferior stap process and checking for its demise. (main): Move launching logic to StapLauncher.
* Pass command line arguments on to stapTim Moore2009-09-301-3/+6
| | | | * grapher/grapher.cxx (main): Pass program arguments to stap
* cleanup of graph data dialogTim Moore2009-09-301-3/+16
| | | | | * grapher/GraphWidget.cxx (on_button_release_event, onDataAdd): tweaks for graph data dialog
* grapher: Handle the death of the child stap processTim Moore2009-09-303-11/+116
| | | | | | * grapher/grapher.c (main): Set up signal and i/o handlers to detect death of child. * grapher/StapParser.cxx (errIoCallback): New method
* Create lists of graph data to chooseTim Moore2009-09-302-0/+17
|
* Add graph data chooser window, based on gladeTim Moore2009-09-308-49/+351
| | | | | | | | | | | | | * configure.ac: Test for libglademm * grapher/GraphWidget.hxx (DataModelColumns): new class (onDataDialogCancel, void onDataAdd, onDataRemove, onDataDialogOpen): new methods * grapher/GraphWidget.cxx: ditto; methods for the graph data dialog. * grapher/graph-dialog.glade: New file. * grapher/graph-dialog.gladep: New file. * grapher/Makefile.am (dist_pkgdata_DATA): add graph-dialog.glade to installation. * grapher/GraphWidget.cxx (GraphWidget constructor): Use PKGDATADIR