]> sourceware.org Git - systemtap.git/log
systemtap.git
15 years agoMerge commit 'origin/master' into pr7043
David Smith [Thu, 18 Jun 2009 18:10:21 +0000 (13:10 -0500)]
Merge commit 'origin/master' into pr7043

15 years agoEnabled overwrite processing on original transports.
David Smith [Thu, 18 Jun 2009 18:09:31 +0000 (13:09 -0500)]
Enabled overwrite processing on original transports.
* runtime/transport/relay_v2.c (_stp_transport_data_fs_overwrite): Renamed
  from stp_relay_set_overwrite().
* runtime/transport/relayfs.c (stp_relay_set_overwrite): Ditto.
* runtime/transport/ring_buffer.c (_stp_transport_data_fs_overwrite): New
  place holder function.
* runtime/transport/transport.c (_stp_detach): Calls
 _stp_transport_data_fs_overwrite().
  (_stp_attach): Calls _stp_transport_data_fs_overwrite().
* runtime/transport/transport.h: Added prototype for
  _stp_transport_data_fs_overwrite().

15 years agoPR10273 Correctly adjust libdw address for dwfl dwarf bias.
Mark Wielaard [Thu, 18 Jun 2009 15:54:15 +0000 (17:54 +0200)]
PR10273 Correctly adjust libdw address for dwfl dwarf bias.

* dwflpp.cxx (relocate_address): Adjust reloc_addr at start, not afterwards.

15 years agoCast STAP_PROBE1 parameter.
Stan Cox [Thu, 18 Jun 2009 15:37:30 +0000 (11:37 -0400)]
Cast STAP_PROBE1 parameter.

* sdt.h (STAP_PROBE1): Add cast of parm1 for narrower signed types.

15 years agoMerge commit 'origin/master' into pr7043
David Smith [Thu, 18 Jun 2009 15:12:35 +0000 (10:12 -0500)]
Merge commit 'origin/master' into pr7043

15 years agoMade testcase handle slower systems.
David Smith [Thu, 18 Jun 2009 15:10:51 +0000 (10:10 -0500)]
Made testcase handle slower systems.
* testsuite/systemtap.base/flightrec3.exp: Fixed for slower systems.

15 years agoRefactor common code in the tokenize test
Josh Stone [Thu, 18 Jun 2009 01:23:39 +0000 (18:23 -0700)]
Refactor common code in the tokenize test

15 years agoFix tokenize function and test.
Przemyslaw Pawelczyk [Wed, 17 Jun 2009 23:50:31 +0000 (01:50 +0200)]
Fix tokenize function and test.

Previous implementation was error-prone, because allowed returning empty
tokens (mimiced strsep()), which is fine if there is a NULL semantic.
Unfortunately SystemTap doesn't provide it in scripts and has only blank
string (""), therefore testing against it was misleading.
The solution is to return only non-empty tokens (mimic strtok()).

* tapset/string.stp: Fix tokenize.
* testsuite/systemtap.string/tokenize.stp: Improve and add case with
  more than one delimiter in the delim string.
* testsuite/systemtap.string/tokenize.exp: Ditto.
* stapfuncs.3stap.in: Update tokenize description.
* doc/langref.tex: Ditto.

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoMerge commit 'origin/master' into pr7043
David Smith [Wed, 17 Jun 2009 20:42:12 +0000 (15:42 -0500)]
Merge commit 'origin/master' into pr7043

15 years agoImproved error handling.
David Smith [Wed, 17 Jun 2009 20:22:01 +0000 (15:22 -0500)]
Improved error handling.
* testsuite/systemtap.base/flightrec3.exp: Improved error handling.

15 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
William Cohen [Wed, 17 Jun 2009 15:46:19 +0000 (11:46 -0400)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

15 years agoSpecify how to generate Publican document with separate build directory.
William Cohen [Wed, 17 Jun 2009 15:44:13 +0000 (11:44 -0400)]
Specify how to generate Publican document with separate build directory.

15 years agoPR10273. uprobes fail to insert on prelinked library.
Mark Wielaard [Wed, 17 Jun 2009 14:42:59 +0000 (16:42 +0200)]
PR10273. uprobes fail to insert on prelinked library.

* dwflpp.cxx (relocate_address): For .dynamic section addresses adjust for
  module bias.

15 years agoUse the expanded value for sdt $$name
Josh Stone [Tue, 16 Jun 2009 18:31:22 +0000 (11:31 -0700)]
Use the expanded value for sdt $$name

* tapsets.cxx (dwarf_builder::build): pass probe_table.probe_name into
  the sdt_var_expander instead of .mark_name, so wildcards are resolved.

15 years agoMerge commit 'origin/master' into pr7043
David Smith [Tue, 16 Jun 2009 17:22:32 +0000 (12:22 -0500)]
Merge commit 'origin/master' into pr7043

Conflicts:
runtime/transport/transport.c

15 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
David Smith [Tue, 16 Jun 2009 17:18:21 +0000 (12:18 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

15 years agoMoved time.c inclusion from runtime/transport/transport.c to runtime/runtime.h.
David Smith [Tue, 16 Jun 2009 17:17:35 +0000 (12:17 -0500)]
Moved time.c inclusion from runtime/transport/transport.c to runtime/runtime.h.
* runtime/runtime.h: Includes time.c.
* runtime/transport/transport.c: Removed time.c inclusion.

15 years agoSupport -L for kprobe and utrace static user markers.
Stan Cox [Tue, 16 Jun 2009 16:58:33 +0000 (12:58 -0400)]
Support -L for kprobe and utrace static user markers.

tapsets.cxx (dwarf_builder::build): Special case listing mode for kprobe and utrace.

15 years agoDo not emit duplicate probes for kprobe/utrace cases.
Stan Cox [Tue, 16 Jun 2009 14:59:25 +0000 (10:59 -0400)]
Do not emit duplicate probes for kprobe/utrace cases.

* tapsets.cxx (dwarf_builder) Add probes_handled.
(dwarf_builder::build):  Use probes_handled to not emit duplicates.

15 years agoStrip out newlines in GCC version string.
Mark Wielaard [Tue, 16 Jun 2009 14:28:28 +0000 (16:28 +0200)]
Strip out newlines in GCC version string.

* testsuite/lib/systemtap.exp (get_system_info): Remove possible newlines
  from GCC_Version string.

15 years agoAdd GCC version to testsuite run output and systemtap.sum file.
Mark Wielaard [Tue, 16 Jun 2009 14:13:25 +0000 (16:13 +0200)]
Add GCC version to testsuite run output and systemtap.sum file.

Prints the gcc being used and full version. Also adds short version
number to systemtap.sum file (plus full version string). Will make
comparing failures based on compiler version being used easier.

* testsuite/lib/systemtap.exp (print_systemtap_version): Also print
  location and full version of gcc being used.
  (get_system_info): Get gcc version number and long version string.
* testsuite/lib/stap_run.exp (print_system_info): Output GCC version.

15 years agoAdd pgrp() context tapset function. Describe sid().
Przemyslaw Pawelczyk [Sat, 13 Jun 2009 14:58:30 +0000 (16:58 +0200)]
Add pgrp() context tapset function. Describe sid().

* tapset/context.stp: Add pgrp() function.
* testsuite/buildok/context_test.stp: Add pgrp() call.
* stapfuncs.3stap.in: Describe pgrp() and sid().

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoAdd experimental utrace/kprobe sdt support
Stan Cox [Mon, 15 Jun 2009 16:16:17 +0000 (12:16 -0400)]
Add experimental utrace/kprobe sdt support

* sdt.h (EXPERIMENTAL_UTRACE_SDT, EXPERIMENTAL_KPROBE_SDT): New probe
point macros.
* dtrace: Add support for creating type debug info, currently invoked
with --types.
* tapsets.cxx (probe_table::convert_probe): New.
(probe_table::convert_location): New.
(dwarf_builder::build):  Use it to simplify probe point handling.
* sdt.exp (pbtype_flags, pbtype_mssgs): New to also test kprobe and utrace.
* static_uprobes.exp (pbtype_flags, pbtype_mssgs): New to also test kprobe and utrace.

15 years agoPR10285. User space PROBE marks aren't found with separate debuginfo.
Mark Wielaard [Mon, 15 Jun 2009 15:47:36 +0000 (17:47 +0200)]
PR10285. User space PROBE marks aren't found with separate debuginfo.

The original logic was a little confused. It could end up searching the
separate debuginfo twice instead of falling back to the main elf file.
Now we explicitly search the main elf file first (where the .probes
section really should be) and only then fall back to the separate
debuginfo file.

* tapsets.cxx (dwarf_builder::probe_table::probe_table): Search main
  elf file first, then fall back on separate debuginfo file if necessary.
* testsuite/systemtap.exelib/exelib.exp: Enable mark.tcl testcase.
main elf file or the debuginfo file, but would interpret

15 years agoAdd (disabled) testcase for stap probe marks to exelib.
Mark Wielaard [Mon, 15 Jun 2009 15:16:14 +0000 (17:16 +0200)]
Add (disabled) testcase for stap probe marks to exelib.

* testsuite/systemtap.exelib/exelib.exp: Compile against sdt.h.
* testsuite/systemtap.exelib/uprobes_exe.c: Add main_count probe mark.
* testsuite/systemtap.exelib/uprobes_lib.c: Add func_count probe mark.
* testsuite/systemtap.exelib/mark.tcl: New test.
* testsuite/systemtap.exelib/mark.stp: New test tapset.

15 years agoPR10274 Fix exelib -O3 testcase.
Mark Wielaard [Mon, 15 Jun 2009 11:37:39 +0000 (13:37 +0200)]
PR10274 Fix exelib -O3 testcase.

The testcase now uses noinline, an empty asm statement and a volatile
variable to prevent the function getting inlined, being totally unrolled
or the recursive call being replaced with an inner-iteration.

This does defeat part of the testcase though, which was testing unwinding
through an optimized recursive function. But it seems the best we can do.

* testsuite/systemtap.exelib/exelib.exp: Add -O3 to the mix.
* testsuite/systemtap.exelib/uprobes_exe.c: Use volatile bar and mark
  main_func noinline.
* testsuite/systemtap.exelib/uprobes_lib.c: Use volatile foo and mark
  lib_func noinline.

15 years agoPR10279: add -DKRETACTIVE=nnnn parameter
Frank Ch. Eigler [Sat, 13 Jun 2009 22:21:06 +0000 (18:21 -0400)]
PR10279: add -DKRETACTIVE=nnnn parameter

* tapsets.cxx (dwarf/kprobe_derived_...::emit_decl/init): Define
  and use KRETPROBE instead of hard-coded max(...) values.  Raise
  the default 50%.
* testsuite/buildok/thirtytwo.stp: New test.

15 years agoPR10277: fix \octal escaping of utf-8 characters in path names etc.
Frank Ch. Eigler [Sat, 13 Jun 2009 19:56:52 +0000 (15:56 -0400)]
PR10277: fix \octal escaping of utf-8 characters in path names etc.

* util.h (lex_cast_qstring): Use unsigned rather than signed chars.

15 years agoAdd exelib uprobes test framework.
Mark Wielaard [Fri, 12 Jun 2009 20:37:11 +0000 (22:37 +0200)]
Add exelib uprobes test framework.

Tests uprobes placed in executables and shared libraries on different
arches (32-on-64 currently disabled), gcc/g++, optimizations (currently
disabled), prelinked libs (currently disabled), seperate libs/exe debuginfo
and pie executables.

* testsuite/systemtap.base/uprobes_exe.c: Moved to...
* testsuite/systemtap.exelib/uprobes_exe.c: From systemtap.base.
* testsuite/systemtap.base/uprobes_lib.c: Moved to...
* testsuite/systemtap.exelib/uprobes_lib.c: From systemtap.base.
* testsuite/systemtap.base/uprobes_lib.exp: Rewritten as...
* testsuite/systemtap.exelib/lib.tcl: From uprobes_lib.exp.
* testsuite/systemtap.base/uprobes_lib.stp: Rewritten as...
* testsuite/systemtap.exelib/lib.stp: From uprobes_lib.stp.
* testsuite/systemtap.base/uprobes_uname.exp: Rewritten as...
* testsuite/systemtap.exelib/uname.tcl: From uprobes_uname.exp.
* testsuite/systemtap.base/uprobes_uname.stp: Rewritten as...
* testsuite/systemtap.exelib/uname.stp: From uprobes_uname.stp.
* testsuite/systemtap.base/uprobes_ustack.exp: Rewritten as...
* testsuite/systemtap.exelib/ustack.tcl: From uprobes_ustack.exp.
* testsuite/systemtap.base/uprobes_ustack.stp: Rewritten as...
* testsuite/systemtap.exelib/ustack.stp: From uprobes_ustack.stp.
* testsuite/systemtap.exelib/exelib.exp: New exelib uprobes framework.
* testsuite/systemtap.exelib/cleanup.tcl: New file.

15 years agoMap przemoc's name to UTF-8 in .mailmap & AUTHORS
Josh Stone [Fri, 12 Jun 2009 19:04:34 +0000 (12:04 -0700)]
Map przemoc's name to UTF-8 in .mailmap & AUTHORS

15 years agoFixed non-bulkmode output on smp systems using transport version 2.
David Smith [Fri, 12 Jun 2009 18:20:57 +0000 (13:20 -0500)]
Fixed non-bulkmode output on smp systems using transport version 2.
* runtime/transport/relay_v2.c (__stp_relay_create_buf_file_callback): Set
  the 'is_global' return parameter so that smp systems work correctly.

15 years agoadded quick note to README re latexml
Don Domingo [Fri, 12 Jun 2009 03:16:32 +0000 (13:16 +1000)]
added quick note to README re latexml

15 years agoVersion bumps for the 0.9.8 release release-0.9.8
Josh Stone [Thu, 11 Jun 2009 23:12:07 +0000 (16:12 -0700)]
Version bumps for the 0.9.8 release

15 years agoPick up some NEWS items from the release notes
Josh Stone [Thu, 11 Jun 2009 23:01:08 +0000 (16:01 -0700)]
Pick up some NEWS items from the release notes

15 years agoMerge commit 'origin/master' into pr7043
David Smith [Thu, 11 Jun 2009 21:29:13 +0000 (16:29 -0500)]
Merge commit 'origin/master' into pr7043

15 years agoremove erroneous dependency (systemtap-sdt-devel -> systemtap)
Frank Ch. Eigler [Thu, 11 Jun 2009 17:05:24 +0000 (13:05 -0400)]
remove erroneous dependency (systemtap-sdt-devel -> systemtap)

15 years agoAdd nd_syscalls NEWS
Josh Stone [Thu, 11 Jun 2009 00:40:19 +0000 (17:40 -0700)]
Add nd_syscalls NEWS

15 years agoReformat the module signing NEWS
Josh Stone [Thu, 11 Jun 2009 00:32:28 +0000 (17:32 -0700)]
Reformat the module signing NEWS

15 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Josh Stone [Wed, 10 Jun 2009 23:10:38 +0000 (16:10 -0700)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

15 years agoPR10260: Clean up all resources after init errors
Josh Stone [Wed, 10 Jun 2009 22:50:04 +0000 (15:50 -0700)]
PR10260: Clean up all resources after init errors

When anything in systemtap_module_init fails, and we return non-zero,
then the module load is aborted.  The normal module unload path
(systemtap_module_exit) is not even attempted, so we need to make sure
that all partially-allocated resources are returned.

Our timer callbacks for the gettimeofday subsystem are a classic example
of this error.  If we don't unregister the timers before aborting init,
they will later be called and cause a kernel fault.

We also were neglecting to free the percpu context.  A memory leak is
less harmful, but that's fixed now too.

15 years agogcc 3.4.6 compatibility: s/{true,false}/{1,0} in runtime/unwind.c
Frank Ch. Eigler [Wed, 10 Jun 2009 20:41:51 +0000 (16:41 -0400)]
gcc 3.4.6 compatibility: s/{true,false}/{1,0} in runtime/unwind.c

15 years agoFix condition propagation across aliases
Josh Stone [Wed, 10 Jun 2009 02:58:15 +0000 (19:58 -0700)]
Fix condition propagation across aliases

When an instance of an alias has a condition, that condition gets
propagated to each of the locations that the alias defines.  However,
the copy of the location list was not a deep copy, and so all other
instances of the alias would also incorrectly receive the condition.

This patch makes the location list copy a little deeper, and adds a
test case which demonstrates the issue.

15 years agobuild compatibility fix for gcc 3.4
Frank Ch. Eigler [Wed, 10 Jun 2009 01:41:40 +0000 (21:41 -0400)]
build compatibility fix for gcc 3.4

* translate.cxx (emit_symbol_data): Use ~0 instead of -1 for big unsigned constant

15 years agoAdd bounds-checking to sdt $argN
Josh Stone [Wed, 10 Jun 2009 00:04:40 +0000 (17:04 -0700)]
Add bounds-checking to sdt $argN

15 years agoRemove probe_table's unused location member
Josh Stone [Tue, 9 Jun 2009 23:47:17 +0000 (16:47 -0700)]
Remove probe_table's unused location member

15 years agoRemove sdt_var_expanding_visitor's now-unused dw
Josh Stone [Tue, 9 Jun 2009 23:41:30 +0000 (16:41 -0700)]
Remove sdt_var_expanding_visitor's now-unused dw

15 years agoRemove the spurious sdt @cast expansion
Josh Stone [Tue, 9 Jun 2009 23:37:14 +0000 (16:37 -0700)]
Remove the spurious sdt @cast expansion

The result of sdt's private @cast expansion was not being used, and it's
not really needed anyway.  The global cast visitor is registered to run
as a post-processing step on ALL functions and probes, and so it will
pick up and expand sdt's casts too.

15 years agoSimplify process.mark parameter parsing
Josh Stone [Tue, 9 Jun 2009 23:34:38 +0000 (16:34 -0700)]
Simplify process.mark parameter parsing

This just makes it so the parameters only need to be checked and pulled
out once.

15 years agodummy empty change
Frank Ch. Eigler [Tue, 9 Jun 2009 21:39:37 +0000 (17:39 -0400)]
dummy empty change

15 years ago* tapsets.cxx (sdt_var_expanding_visitor::process_name): New.
Stan Cox [Tue, 9 Jun 2009 21:05:53 +0000 (17:05 -0400)]
* tapsets.cxx (sdt_var_expanding_visitor::process_name): New.
(sdt_var_expanding_visitor::visit_target_symbol): Have @cast use
types from a dtrace built object instead of a dtrace supplied header.
(dwarf_builder::build): Use it.

15 years agoFixed cut-and-paste error.
David Smith [Tue, 2 Jun 2009 16:21:24 +0000 (11:21 -0500)]
Fixed cut-and-paste error.
* runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Fixed
  cut-and-paste error.

15 years agoAvoid holding semaphore while making mmap callbacks.
David Smith [Mon, 1 Jun 2009 17:20:08 +0000 (12:20 -0500)]
Avoid holding semaphore while making mmap callbacks.
* runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Grabs the
  'mmap_sem' sempaphore. Caches vma information, releases the semaphore,
  then makes mmap callbacks.
  (__stp_utrace_task_finder_target_quiesce): Calls
  __stp_call_mmap_callbacks_for_task() to make mmap callbacks on initial
  attach to a task.

15 years agoAvoid 1 case of holding a semaphore while mmap callbacks are being made.
David Smith [Thu, 28 May 2009 15:58:17 +0000 (10:58 -0500)]
Avoid 1 case of holding a semaphore while mmap callbacks are being made.
* runtime/task_finder.c (__stp_call_mmap_callbacks_with_addr): Renamed
  from __stp_call_mmap_callbacks_with_vma().  Also added some code from
  __stp_utrace_task_finder_target_syscall_exit() that locks the 'mmap_sem'
  semaphore.  This avoids holding the semaphore while the mmap callbacks
  are made.
  (__stp_utrace_task_finder_target_syscall_exit): Just calls
  __stp_call_mmap_callbacks_with_addr() in the mmap case.

15 years agoFix uninitialized shdr in probe_table
Josh Stone [Tue, 9 Jun 2009 15:54:59 +0000 (08:54 -0700)]
Fix uninitialized shdr in probe_table

(redo commit 3d022fa9c6bdbca383dfc639d08d65287c708f56)

* tapsets.cxx (dwarf_builder::probe_table::probe_table): gcc 4.4
complains that shdr may be used uninitialized.  I added returns to
ensure that it's ok, but gcc still complains.  Set the thing to NULL
as well to silence the beast.

15 years ago* tapsets.cxx (probe_table): Make mark_name and sess refs.
Stan Cox [Tue, 9 Jun 2009 01:57:44 +0000 (21:57 -0400)]
* tapsets.cxx (probe_table): Make mark_name and sess refs.
(probe_table::get_next_probe): Dissect using struct probe_table.
(sdt_var_expanding_visitor): Use lex_cast.
(dwarf_builder::build): Copy probe and location for TOK_MARK cases.
Call derive_probes for kprobe and utrace cases.

15 years agoRemove dwflpp::default_name
Josh Stone [Mon, 8 Jun 2009 23:37:00 +0000 (16:37 -0700)]
Remove dwflpp::default_name

It was just a basic NULL check, but creating its string temporaries was
causing a fair slowdown.  Removing this function and adjusting the
callers shaves ~5% off the syscall.* elaboration time.

15 years agoLet query_module abort early for simple matches
Josh Stone [Mon, 8 Jun 2009 22:36:42 +0000 (15:36 -0700)]
Let query_module abort early for simple matches

query_module was already returning DW_CB_ABORT when a simple match was
found, but dwflpp::iterate_over_modules was ignoring that and instead
forcing the module loop to restart.  The only way out of the loop was
with the pending_interrupts flag, which is only for signalled
interrupts.

Now iterate_over_modules will only attempt the dwfl_getmodules loop
once, since that loop will only abort if the CB returns DW_CB_ABORT.
Then query_module is also modified to return ABORT if pending_interrupts
is flagged.

My trusty test, stap -l syscall.*, is nearly 2x faster with this change.
Empirically, I found that the kernel object is always the first "module"
returned, so the syscall probepoints always gets to short-circuit the
loop right away.

15 years agottyspy: struct pid->number[0]->nr arrived with 2.6.24 not later
Frank Ch. Eigler [Sat, 6 Jun 2009 16:41:35 +0000 (12:41 -0400)]
ttyspy: struct pid->number[0]->nr arrived with 2.6.24 not later

15 years agottyspy.stp: new sample script
Frank Ch. Eigler [Sat, 6 Jun 2009 16:29:51 +0000 (12:29 -0400)]
ttyspy.stp: new sample script

15 years agoPR10209: extend configury for --disable-translator
Elliott Baron [Fri, 5 Jun 2009 15:40:34 +0000 (11:40 -0400)]
PR10209: extend configury for --disable-translator

* configure.ac: Added --disable-translator feature, creates AM_CONDITIONAL BUILD_TRANSLATOR.
* Makefile.am: Only build runtime components (staprun, stapio) if BUILD_TRANSLATOR == FALSE.
* configure: Regenerated.
* Makefile.in: Likewise.
* aclocal.m4: Likewise.
* config.in: Likewise.
* doc/Makefile.in: Likewise.
* doc/SystemTap_Tapset_Reference/Makefile.in: Likewise.
* grapher/Makefile.in: Likewise.

15 years agoFix uninitialized shdr in probe_table
Josh Stone [Thu, 4 Jun 2009 01:51:30 +0000 (18:51 -0700)]
Fix uninitialized shdr in probe_table

* tapsets.cxx (dwarf_builder::probe_table::probe_table): gcc 4.4
complains that shdr may be used uninitialized.  I added returns to
ensure that it's ok, but gcc still complains.  Set the thing to NULL
as well to silence the beast.

15 years agoMake sure all DEBUG_TRANS output uses printk.
David Smith [Wed, 3 Jun 2009 20:20:46 +0000 (15:20 -0500)]
Make sure all DEBUG_TRANS output uses printk.
* runtime/transport/control.c (_stp_ctl_write_cmd): Calls dbug_trans2
  instead of _dbug (so that printk is used instead of the transport
  itself).
  (_stp_ctl_write_dbug): Ditto.
* runtime/debug.h (dbug_trans2): New macro.

15 years ago* tapsets.cxx (dwarf_builder::probe_table): New. Derived from
Stan Cox [Wed, 3 Jun 2009 20:10:04 +0000 (16:10 -0400)]
* tapsets.cxx (dwarf_builder::probe_table): New.  Derived from
dwarf_builder::build to handle the .probes section
(sdt_var_expanding_visitor): New.  Expand static probe $argN.
(dwarf_builder::build): Use probe_table.  Add kprobe and utrace probe types.

15 years agoFixed STP_TRANSPORT_VERSION 1 behavior.
David Smith [Wed, 3 Jun 2009 18:04:54 +0000 (13:04 -0500)]
Fixed STP_TRANSPORT_VERSION 1 behavior.
* runtime/transport/control.c (_stp_ctl_write_dbug): Added support for
  more messages.
* runtime/transport/relay_v2.c (_stp_transport_data_fs_start): New
  function.
  (_stp_transport_data_fs_stop): Ditto.
  (_stp_transport_data_fs_close): Moved some functionality into
  _stp_transport_data_fs_stop() and calls _stp_transport_data_fs_stop()
  also.
  (_stp_transport_data_fs_init): Moved some functionality into
  _stp_transport_data_fs_start() and calls _stp_transport_data_fs_start()
  also.
* runtime/transport/relayfs.c (_stp_transport_data_fs_start): New
  function.
  (_stp_transport_data_fs_stop): Ditto.
  (_stp_transport_data_fs_close): Moved some functionality into
  _stp_transport_data_fs_stop() and calls _stp_transport_data_fs_stop()
  also.
  (_stp_transport_data_fs_init): Moved some functionality into
  _stp_transport_data_fs_start() and calls _stp_transport_data_fs_start()
  also.
* runtime/transport/ring_buffer.c (_stp_transport_data_fs_start): New
  empty function.
  (_stp_transport_data_fs_stop): Ditto.
* runtime/transport/transport.h: Added _stp_transport_data_fs_start() and
  _stp_transport_data_fs_stop() prototypes.
* runtime/transport/transport.c (_stp_cleanup_and_exit): Calls
  _stp_transport_data_fs_stop().
  (_stp_transport_close): Calls _stp_transport_fs_close() earlier.
  (_stp_transport_init): Calls _stp_transport_data_fs_start().

15 years agoDetect kretprobe trampoline and use fallback unwinder.
Mark Wielaard [Wed, 3 Jun 2009 13:36:03 +0000 (15:36 +0200)]
Detect kretprobe trampoline and use fallback unwinder.

* runtime/sym.h (_stp_kretprobe_trampoline): Document.
* translate.cxx (unwindsym_dump_context): Add stp_kretprobe_trampoline_addr.
  (dump_unwindsyms): Detect kretprobe_trampoline_holder symbol address.
  (emit_symbol_data): Initialize and emit _stp_kretprobe_trampoline.
* runtime/transport/symbols.c (_stp_do_relocation): Detect kernel load
  address and adjust _stp_kretprobe_trampoline.
* runtime/stack-i386.c (__stp_stack_print): Always use fallback unwinder
  when hitting kretprobe_trampoline_holder.
* runtime/stack-x86_64.c (__stp_stack_print): Likewise.

15 years agoAdd $arch/nd_syscalls.stp
Josh Stone [Wed, 3 Jun 2009 01:59:53 +0000 (18:59 -0700)]
Add $arch/nd_syscalls.stp

These are all the dwarfless analogs to $arch/syscalls.stp.
(Only i686 and x86_64 have been tested...)

15 years agoClean up the formatting of $arch/syscalls.stp
Josh Stone [Tue, 2 Jun 2009 23:59:59 +0000 (16:59 -0700)]
Clean up the formatting of $arch/syscalls.stp

15 years agoComplete a few TODO probe points in nd_syscalls2
Josh Stone [Tue, 2 Jun 2009 23:33:05 +0000 (16:33 -0700)]
Complete a few TODO probe points in nd_syscalls2

This adds renameat, unlinkat, unshare, and compat_sys_semctl.

15 years agoFixed cut-and-paste error.
David Smith [Tue, 2 Jun 2009 16:21:24 +0000 (11:21 -0500)]
Fixed cut-and-paste error.
* runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Fixed
  cut-and-paste error.

15 years agoFix nd_syscall2 open.return typo.
Mark Wielaard [Tue, 2 Jun 2009 12:55:30 +0000 (14:55 +0200)]
Fix nd_syscall2 open.return typo.

* tapset/nd_syscalls2.stp (nd_syscall.open.return): Add commas after
  alternatives.

15 years agoMore nd_syscalls2 cleanup, and add SYSCALL_WRAPPERS
Josh Stone [Tue, 2 Jun 2009 08:28:00 +0000 (01:28 -0700)]
More nd_syscalls2 cleanup, and add SYSCALL_WRAPPERS

- Fix a few more formatting issues
- Add SYSCALL_WRAPPERS analogous to 132c33 tapset/syscalls2.stp

Thanks to Przemysław Pawełczyk for the helpful translation scripts.

15 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Josh Stone [Tue, 2 Jun 2009 07:53:40 +0000 (00:53 -0700)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

15 years agoCache the last result of dwarf_getscopes
Josh Stone [Tue, 2 Jun 2009 07:43:49 +0000 (00:43 -0700)]
Cache the last result of dwarf_getscopes

This one function accounted for ~30% of my callgrind profile of
"stap -l 'syscall.*'", even though it was only called ~1200 times.  We
call dwarf_getscopes for each $target variable, with the same parameters
within a given probe.  Since they're no nicely grouped, it's easy to
just cache the most recent call, and the next few calls will be a hit.

Overall this cuts the number of calls down to about 300, for an easy
speed gain.

15 years agoMove the blacklist functions into dwflpp
Josh Stone [Tue, 2 Jun 2009 01:47:30 +0000 (18:47 -0700)]
Move the blacklist functions into dwflpp

For a call like "stap -l 'syscall.*'", I found that ~10% of the time was
spent compiling the blacklist regexps over again for each probe point.
By moving this functionality into the kernel dwflpp instance, we can
reuse the regexps and get an easy speed boost.

15 years agoAdd debuginfo-install suggestion for kernel probing.
William Cohen [Mon, 1 Jun 2009 18:45:22 +0000 (14:45 -0400)]
Add debuginfo-install suggestion for kernel probing.

15 years agoBetter sdt.exp test cleanup.
David Smith [Mon, 1 Jun 2009 18:25:44 +0000 (13:25 -0500)]
Better sdt.exp test cleanup.
* testsuite/systemtap.base/sdt.exp: Better cleanup.

15 years agoAvoid holding semaphore while making mmap callbacks.
David Smith [Mon, 1 Jun 2009 17:20:08 +0000 (12:20 -0500)]
Avoid holding semaphore while making mmap callbacks.
* runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Grabs the
  'mmap_sem' sempaphore. Caches vma information, releases the semaphore,
  then makes mmap callbacks.
  (__stp_utrace_task_finder_target_quiesce): Calls
  __stp_call_mmap_callbacks_for_task() to make mmap callbacks on initial
  attach to a task.

15 years agoFix a few variables in nd_syscalls2
Josh Stone [Fri, 29 May 2009 23:50:24 +0000 (16:50 -0700)]
Fix a few variables in nd_syscalls2

15 years agoClean up nd_syscalls2 formatting
Josh Stone [Fri, 29 May 2009 23:25:19 +0000 (16:25 -0700)]
Clean up nd_syscalls2 formatting

This applies some of the formatting rules specified in c0c1ccc.

15 years agoKill trailing whitespace in nd_syscalls[2]
Josh Stone [Fri, 29 May 2009 22:24:53 +0000 (15:24 -0700)]
Kill trailing whitespace in nd_syscalls[2]

15 years agoConvert nd_syscalls2 to kprobe.function
Josh Stone [Fri, 29 May 2009 21:38:23 +0000 (14:38 -0700)]
Convert nd_syscalls2 to kprobe.function

15 years agoAdd JoeLynn Keniston to AUTHORS
Josh Stone [Fri, 29 May 2009 18:51:13 +0000 (11:51 -0700)]
Add JoeLynn Keniston to AUTHORS

15 years agoCreate nd_syscalls2.stp
JoeLynn Keniston [Fri, 29 May 2009 18:46:41 +0000 (11:46 -0700)]
Create nd_syscalls2.stp

This contains an initial transformation of syscalls2.stp to start using
numbered parameter access instead of relying on dwarf.

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoPR10206: Include NOTYPE symbols in stap-symbols.h
Ananth N Mavinakayanahalli [Thu, 28 May 2009 16:53:45 +0000 (22:23 +0530)]
PR10206: Include NOTYPE symbols in stap-symbols.h

On powerpc, function descriptors are in the .opd section as NO_TYPE.
Include them in stap-symbols.h

15 years agoAvoid 1 case of holding a semaphore while mmap callbacks are being made.
David Smith [Thu, 28 May 2009 15:58:17 +0000 (10:58 -0500)]
Avoid 1 case of holding a semaphore while mmap callbacks are being made.
* runtime/task_finder.c (__stp_call_mmap_callbacks_with_addr): Renamed
  from __stp_call_mmap_callbacks_with_vma().  Also added some code from
  __stp_utrace_task_finder_target_syscall_exit() that locks the 'mmap_sem'
  semaphore.  This avoids holding the semaphore while the mmap callbacks
  are made.
  (__stp_utrace_task_finder_target_syscall_exit): Just calls
  __stp_call_mmap_callbacks_with_addr() in the mmap case.

15 years agoAdd ucontext-symbols and ucontext-unwind tapset functions to the manual.
Mark Wielaard [Thu, 28 May 2009 11:31:31 +0000 (13:31 +0200)]
Add ucontext-symbols and ucontext-unwind tapset functions to the manual.

* tapset/ucontext-unwind.stp (ubacktrace): Remove empty line before function
  triggering parse errors for doc scanner.
* doc/SystemTap_Tapset_Reference/tapsets.tmpl (chapter context_stp): Add
  tapset/ucontext-symbols.stp and tapset/ucontext-unwind.stp.

15 years agoMore testsuite tweaks to make it work with SYSCALL_WRAPPERS
Ananth N Mavinakayanahalli [Thu, 28 May 2009 06:18:34 +0000 (11:48 +0530)]
More testsuite tweaks to make it work with SYSCALL_WRAPPERS

15 years agoSuggest rpms to install using debuginfo-install.
William Cohen [Wed, 27 May 2009 15:14:12 +0000 (11:14 -0400)]
Suggest rpms to install using debuginfo-install.

The patch makes use of the RPM libraries to determine which rpm supplied
the executable and from that information suggest a command to install the
appropriate debuginfo rpm.

This is enabled using the "--with-rpm" option for configure. Can be
explicitly disabled with "--without-rpm".

15 years agoCleanup and better original transport support.
David Smith [Tue, 26 May 2009 19:08:57 +0000 (14:08 -0500)]
Cleanup and better original transport support.
* runtime/print.h: Moved _stp_reserve_bytes() prototype here.
* runtime/vsprintf.c (_stp_vsnprintf): Includes print.h to get
  _stp_reserve_bytes() prototype.

* runtime/transport/transport.c (_stp_remove_root_dir): Better cleanup
  for STP_TRANSPORT_VERSION == 1.
  (_stp_transport_fs_close): Ditto.

15 years agoFix nd_syscalls.stp for architectures using SYSCALL_WRAPPERS.
Przemyslaw Pawelczyk [Sat, 23 May 2009 08:30:40 +0000 (10:30 +0200)]
Fix nd_syscalls.stp for architectures using SYSCALL_WRAPPERS.

Add kprobe.function("SyS_*") probe points to nd_syscall.* probe aliases.
Analogue of commit 132c337c with two exceptions:
- remove sufficiency of these new probe points (use '?' instead of '!'),
  because translator always considers them resolved,
- make non-SyS probe points optional in probe aliases affected by
  syscall wrappers, because otherwise they will fail on such
  architectures.

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoFix another kernel/kprobe.function conflict
Josh Stone [Sat, 23 May 2009 02:55:50 +0000 (19:55 -0700)]
Fix another kernel/kprobe.function conflict

Both kernel.function and kprobe.function were defining a global array
stap_unreg_kprobes to use in bulk kprobes unregistration.  The compiler
allowed the duplicate definition as long as they were the same size, as
it was when exercised in buildok/thirtyone.

kprobe.function now uses a separate stap_unreg_kprobes2, and the
testcase is modified to produce an imbalanced number of probes.

15 years agoPR10190: Suppress warnings for optional kprobes
Josh Stone [Sat, 23 May 2009 01:01:18 +0000 (18:01 -0700)]
PR10190: Suppress warnings for optional kprobes

When a kernel.function or kprobe.function fails in registration, we
usually print a WARNING and move on.  With this patch, kprobes that have
the optional '?' flag will not print any WARNING.

15 years agoMove the "pure" tag into the body of __is_user_regs
Josh Stone [Fri, 22 May 2009 22:27:56 +0000 (15:27 -0700)]
Move the "pure" tag into the body of __is_user_regs

The "/* pure */" tag has no effect unless it is within the embedded-C
body of a function.  In this instance, they were accidentally moved out
during the syscall cleanups.

15 years agoUse embedded-C for empty functions
Josh Stone [Fri, 22 May 2009 21:57:33 +0000 (14:57 -0700)]
Use embedded-C for empty functions

The functions asmlinkage() and fastcall() are used to help access
syscall parameters on i686.  All other archs don't need this, but they
still define empty functions to shield the callers from arch details.

However, stap issues warnings for empty script-level functions.  This
patch changes them to "%{ /* pure */ %}" so there's no complaint, and
they will still get optimized away.

15 years agoUncomment 'name' variable in nd_syscall.lseek probe point.
Przemyslaw Pawelczyk [Fri, 22 May 2009 18:05:43 +0000 (20:05 +0200)]
Uncomment 'name' variable in nd_syscall.lseek probe point.

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoAdd missing probe points in nd_syscalls.stp.
Przemyslaw Pawelczyk [Fri, 22 May 2009 15:15:21 +0000 (17:15 +0200)]
Add missing probe points in nd_syscalls.stp.

Add probe points for faccessat, fchmodat, fchownat, linkat and mknodat.
Analogue of commits: a3d153e5335972be46e2c2c1c815c982dac6e242
and bad69f1d.

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoRemove return probes for exit[_group] in nd_syscalls.stp.
Przemyslaw Pawelczyk [Fri, 22 May 2009 14:31:15 +0000 (16:31 +0200)]
Remove return probes for exit[_group] in nd_syscalls.stp.

Analogue of commit 39a8b0bc.

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoUnify formatting of nd_syscalls.stp.
Przemyslaw Pawelczyk [Fri, 22 May 2009 11:58:27 +0000 (13:58 +0200)]
Unify formatting of nd_syscalls.stp.

Rules were already specified in commit c0c1ccc6.

Signed-off-by: Josh Stone <jistone@redhat.com>
15 years agoRestore staprun's support for REAL_UID/GID
Josh Stone [Fri, 22 May 2009 19:17:45 +0000 (12:17 -0700)]
Restore staprun's support for REAL_UID/GID

This is needed for run-stap so that stapio and all child processes can
run as the originally invoking user instead of root.

15 years agoAdded error checking and other updates.
David Smith [Fri, 22 May 2009 15:50:30 +0000 (10:50 -0500)]
Added error checking and other updates.
* runtime/vsprintf.c: Added transport.h inclusion for STP_BUFFER_SIZE
  definition.

* runtime/transport/debugfs.c (_stp_register_ctl_channel_fs): Added error
  checking.
* runtime/transport/transport.c (_stp_get_root_dir): Ditto.
  (_stp_transport_fs_init): Added original transport support and error
  checking.
* runtime/transport/relay_v2.c (__stp_relay_create_buf_file_callback):
  Added error checking.
  (_stp_transport_data_fs_init): Ditto.
* runtime/transport/ring_buffer.c (_stp_transport_data_fs_init): Ditto.

* runtime/transport/utt.c: Removed unused file.
* runtime/transport/utt.h: Ditto.

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