]> sourceware.org Git - systemtap.git/log
systemtap.git
13 years agoAudit possible string buffer overruns.
David Smith [Fri, 3 Dec 2010 18:52:41 +0000 (12:52 -0600)]
Audit possible string buffer overruns.

* runtime/transport/procfs.c (_stp_register_ctl_channel_fs): Change
  sprintf() call to snprintf() call.
  (_stp_unregister_ctl_channel_fs): Ditto.
* runtime/transport/ring_buffer.c (_stp_transport_data_fs_init): Ditto.
* runtime/unwind.c (_stp_eh_enc_name): Ditto.
* runtime/io.c: Make sure STP_LOG_BUF_LEN isn't too short.
* runtime/staprun/staprun_funcs.c: Add comments about strcpy/strcat/sprintf
  appropriateness.
  (check_signature): Fix string length calculation.
* runtime/staprun/common.c: Add comments about strcpy/strcat/sprintf
  appropriateness.
* runtime/staprun/modverify.c: Ditto.
* runtime/staprun/relay.c: Ditto.
* runtime/staprun/relay_old.c: Ditto.
* runtime/staprun/staprun_funcs.c: Ditto.

13 years agoRedistribute the Target Variable information
William Cohen [Fri, 3 Dec 2010 16:27:46 +0000 (11:27 -0500)]
Redistribute the Target Variable information

Redistribute the information about target variables in the manual. Also
added index entries for the information and edited the text.

13 years agoFixed possible string buffer overruns in several embedded-C functions.
David Smith [Thu, 2 Dec 2010 20:05:39 +0000 (14:05 -0600)]
Fixed possible string buffer overruns in several embedded-C functions.

* tapset/socket.stp (sock_flags_num2str): Use strlcat() instead of
  strcat() to guard against buffer overruns.  Instead of creating the
  string in a temporary variable and then copying it to THIS->__retvalue,
  just create the string in THIS->__retvalue.
  (msg_flags_num2str): Ditto.
* tapset/inet_sock.stp (daddr_to_string): Use snprintf() instead of
  sprintf() to guard against buffer overruns.
* tapset/signal.stp (sigset_mask_str): Ditto.
* tapset/s390/nd_syscalls.stp (get_32mmap_args): Use strlcat()/snprintf()
  instead of strcat()/sprintf() to guard against buffer overruns.
* tapset/s390/syscalls.stp: Removed unused function get_32mmap_args().
* tapset/aux_syscalls.stp: Minor string-related fixes.
* tapset/string.stp: Ditto.

13 years agoPR 11906: stap-server prints more info about each server acted upon.
Dave Brolley [Wed, 1 Dec 2010 18:51:23 +0000 (13:51 -0500)]
PR 11906: stap-server prints more info about each server acted upon.

13 years agoPR 11906: Include the user running each server in the status output.
Dave Brolley [Wed, 1 Dec 2010 17:06:40 +0000 (12:06 -0500)]
PR 11906: Include the user running each server in the status output.

13 years agoPR 11197: Elaborate on security prophylactic settings for stap-server.
Dave Brolley [Wed, 1 Dec 2010 16:29:49 +0000 (11:29 -0500)]
PR 11197: Elaborate on security prophylactic settings for stap-server.

stap-server.8.in now elaborates on how to achieve the recommended
security settings and points out which ones are the default.

13 years agoFixed BZ624657 by fixing timing issues in the initscript.
David Smith [Tue, 30 Nov 2010 20:18:22 +0000 (14:18 -0600)]
Fixed BZ624657 by fixing timing issues in the initscript.

* initscript/systemtap.in (start_script): Make sure we wait until the pid
  file has been written before trying to use it.
  (stop_script): Check to see if the module has been really unloaded
  before declaring success.

13 years agoPR 10922: Client/Server Testsuite problems when avahi (mDNS) is bkocked by the firewall.
Dave Brolley [Tue, 30 Nov 2010 18:07:15 +0000 (13:07 -0500)]
PR 10922: Client/Server Testsuite problems when avahi (mDNS) is bkocked by the firewall.

The test suite now communicates with the server directly using
--use-serber=$HOSTNAME:PORT when avahi is blocked or not working.

13 years agoPR12141: mention in README the elfutils release that fixes problem
Frank Ch. Eigler [Sun, 28 Nov 2010 00:06:50 +0000 (19:06 -0500)]
PR12141: mention in README the elfutils release that fixes problem

13 years agoAdd configure --disable-sdt-probes
Josh Stone [Tue, 30 Nov 2010 00:16:22 +0000 (16:16 -0800)]
Add configure --disable-sdt-probes

This new option turns off SDT markers in our own binaries.  This doesn't
change the ability to probe SDT in other applications.

* configure.ac: Add --disable-sdt-probes.
* runtime/staprun/configure.ac: Ditto.
* includes/stap-probe.h: Define PROBE[N] depending on ENABLE_SDT_PROBES.
* *.cxx, runtime/staprun/*.[ch]: Use the indirect PROBE macros instead
  of STAP_PROBE, so SDT can be disabled.
* (everything else): Regenerated with autoreconf.
  (The change is bigger due to my newer autotools on F14 -- sorry...)

13 years agoAdapt to old kernels lacking asm/tsc.h
Josh Stone [Mon, 29 Nov 2010 23:36:50 +0000 (15:36 -0800)]
Adapt to old kernels lacking asm/tsc.h

Some old x86_64 kernels do have an export for tsc_khz, but don't need
(or even have) asm/tsc.h to define it.

13 years agoAdd user_{int8,int16,uint16,int32,uint32,int64}.
Stan Cox [Mon, 29 Nov 2010 19:33:14 +0000 (14:33 -0500)]
Add user_{int8,int16,uint16,int32,uint32,int64}.

* sdt.exp (extra_flags): Expand list of tested options.  Use instead
of having a separate c++ section.
(type_pedantics): New.

* sdt_misc.exp (extra_type_flags): Expand list of tested options.
(has_long_long, type_xfail, type_pedantics): New.

* sdt_types.c (NO_LONG_LONG): New.

13 years agoUpdated news regarding uprobes.ko and the compile-server/client.
Dave Brolley [Mon, 29 Nov 2010 17:52:51 +0000 (12:52 -0500)]
Updated news regarding uprobes.ko and the compile-server/client.

13 years agoPR10651 / RHBZ653286: mod_timer vs. del_timer_sync races
Frank Ch. Eigler [Sat, 27 Nov 2010 23:48:52 +0000 (18:48 -0500)]
PR10651 / RHBZ653286: mod_timer vs. del_timer_sync races

It appears possible for del_timer_sync (from outside) and mod_timer
(from within a timer callback) to race.  Defeat this race by ensuring
that the timer callback checks an atomic_t flag before rescheduling
itself with mod_timer.

* runtime/transport/relay_v2.c (transport_state): Turn into an atomic_t.
  Update users.
  (__stp_relay_wakeup_timer): Observe flag.
  (_stp_transport_data_fs_{start,stop}): Update flag before timer manipulations.
* runtime/transport/ring_buffer.c: Ditto for corresponding functions.

13 years agorhbz656699: use %ghost for /var/run/{systemtap,stap-server}
Frank Ch. Eigler [Thu, 25 Nov 2010 17:50:20 +0000 (12:50 -0500)]
rhbz656699: use %ghost for /var/run/{systemtap,stap-server}

13 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
Dave Brolley [Thu, 25 Nov 2010 18:16:22 +0000 (13:16 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

13 years agotestsuite: fragment buildid.exp test driver, fixing objdir!=srcdir case
Frank Ch. Eigler [Thu, 25 Nov 2010 17:35:43 +0000 (12:35 -0500)]
testsuite: fragment buildid.exp test driver, fixing objdir!=srcdir case

* testsuite/systemtap.base/buildid.exp: Evict embedded files into ...
* testsuite/systemtap.base/buildid.{c,hex,stp}: ... these new files.

13 years agobuild: don't include a <linux/version.h> in userspace builds
Frank Ch. Eigler [Wed, 24 Nov 2010 19:00:02 +0000 (14:00 -0500)]
build: don't include a <linux/version.h> in userspace builds

13 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
Dave Brolley [Thu, 25 Nov 2010 16:20:46 +0000 (11:20 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

Conflicts:
runtime/staprun/common.c
session.cxx
session.h

13 years agoImproved handling of uprobes.ko by compile-server and client.
Dave Brolley [Thu, 25 Nov 2010 16:11:36 +0000 (11:11 -0500)]
Improved handling of uprobes.ko by compile-server and client.

- Server now returns uprobes.ko to client when required.
- New optional argument to staprun's -u option to specify the location
  of uprobes module.
- Client uses new argument of -u to specify uprobes.ko returned by
  the server.
- staprun still prefers already-loaded uprobes, built-in uprobes and
  kernel-built uprobes over the one returned by the server.
- staprun verifies the signature of the uprobes module for unprivileged
  users.

13 years agoRejigger sdt.h macros for more nit cases.
Roland McGrath [Wed, 24 Nov 2010 19:51:58 +0000 (11:51 -0800)]
Rejigger sdt.h macros for more nit cases.

13 years agoPR12138: Convert the user_int functions to kread
Josh Stone [Wed, 24 Nov 2010 00:13:55 +0000 (16:13 -0800)]
PR12138: Convert the user_int functions to kread

This uses our more-centralized mechanism for reading uncertain memory,
which also has the ability to read 8-byte values on i386 (not atomically).

* tapset/uconversions.stp: New, move the user_* functions here.  The new
  STP_GET_USER[_WARN] standardize all integer accesses through kread.
* tapset/conversions.stp: This is only for kernel functions now.
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Include uconversions.
* testsuite/buildok/conversions.stp: Build the user_intNN too.
* testsuite/buildok/conversions-embedded.stp: Ditto.

13 years agoif we say sdt_types is untested, then don't test it...
Josh Stone [Wed, 24 Nov 2010 00:12:31 +0000 (16:12 -0800)]
if we say sdt_types is untested, then don't test it...

13 years agoPR12139: revamp sys/sdt.h macros' argument handling
Roland McGrath [Mon, 22 Nov 2010 23:53:36 +0000 (15:53 -0800)]
PR12139: revamp sys/sdt.h macros' argument handling

* includes/sys/sdt.h: Revamp size and signedness calculations on probe
arguments for C and C++.

13 years agoPR12139: test case for pointer to an incomplete type in probe argument
Roland McGrath [Tue, 23 Nov 2010 02:33:35 +0000 (18:33 -0800)]
PR12139: test case for pointer to an incomplete type in probe argument

* testsuite/systemtap.base/sdt_types.c: Test a pointer to an incomplete type.
* testsuite/systemtap.base/sdt_types.stp: Use that new probe.
* testsuite/systemtap.base/sdt_misc.exp: Expect that.

13 years agoFix last commit.
Roland McGrath [Tue, 23 Nov 2010 01:07:13 +0000 (17:07 -0800)]
Fix last commit.

13 years agoFix runcheck for dtrace cases
Roland McGrath [Tue, 23 Nov 2010 00:50:48 +0000 (16:50 -0800)]
Fix runcheck for dtrace cases

* Makefile.am (runcheck): Depend on ...
(testsuite/dtrace): ... this new target.
* Makefile.in: Regenerated.

13 years agoFix runcheck for dtrace cases
Roland McGrath [Tue, 23 Nov 2010 00:50:48 +0000 (16:50 -0800)]
Fix runcheck for dtrace cases

* Makefile.am (runcheck): Depend on ...
(testsuite/dtrace): ... this new target.
* Makefile.in: Regenerated.

13 years agoTest sdt_types.c with c++.
Stan Cox [Mon, 22 Nov 2010 22:34:01 +0000 (17:34 -0500)]
Test sdt_types.c with c++.

sdt_misc.exp (type_language,type_language_mssgs,extra_type_mssgs) New.
Loop over for c++ testing.  Improve error messages.
sdt_types.stp:  Improve error messages.

13 years agoRevert "PR12254: make ioblock.* probes tolerate 0-byte I/O (e.g. blkdev_issue_flush)"
Frank Ch. Eigler [Mon, 22 Nov 2010 21:07:11 +0000 (16:07 -0500)]
Revert "PR12254: make ioblock.* probes tolerate 0-byte I/O (e.g. blkdev_issue_flush)"

This reverts commit d213fd5908edce8c730f08524eae15bc26d62187.
It's not necessary, as commit 3963dacdfe handles this already.

13 years agoPR12254: make ioblock.* probes tolerate 0-byte I/O (e.g. blkdev_issue_flush)
Frank Ch. Eigler [Mon, 22 Nov 2010 21:03:42 +0000 (16:03 -0500)]
PR12254: make ioblock.* probes tolerate 0-byte I/O (e.g. blkdev_issue_flush)

* ioblock.stp (__bio_ino): Make all callers conditional on
  bi_vcnt != 0.

13 years agoTest sdt_types.c with various gcc options.
Stan Cox [Mon, 22 Nov 2010 17:13:44 +0000 (12:13 -0500)]
Test sdt_types.c with various gcc options.

sdt_misc.c (extra_type_flags): New. Test sdt_types.c with misc compile options.
Move sdt_misc.c, sdt_misc.stp, sdt_misc_.d to separate files.
sdt_types.c:  Make -pedantic friendly.  Add constants probe.
sdt_types.stp (constants): New.

13 years agowork around rhel6 module signing nits in this builder script too
Frank Ch. Eigler [Mon, 22 Nov 2010 16:59:09 +0000 (11:59 -0500)]
work around rhel6 module signing nits in this builder script too

13 years agotesting: add new script to generate kernel.function("*") equivalent module
Frank Ch. Eigler [Mon, 22 Nov 2010 16:11:58 +0000 (11:11 -0500)]
testing: add new script to generate   kernel.function("*")  equivalent module

13 years agoreleng: workaround for more rhel6 module-signing nits
Frank Ch. Eigler [Sat, 20 Nov 2010 03:04:40 +0000 (22:04 -0500)]
releng: workaround for more rhel6 module-signing nits

* buildrun.cxx (make_typequery_kmod, make_tracequery): Also
  set CONFIG_MODULE_SIG=n in the destination makefile, on
  account of RHBZ 655231.

13 years agoMake lex_cast work numerically with [u]int8_t
Josh Stone [Fri, 19 Nov 2010 22:00:38 +0000 (14:00 -0800)]
Make lex_cast work numerically with [u]int8_t

These were getting treated by istream like char types, which would
always fail our generic template since eof isn't reached.  There's not
much point to using lex_cast<char> anyway, since str[0] will do the
same, so I've specialized lex_cast with [u]int8_t to read numerically.

The only place we use this so far is in SDT V3 parsing constants.  SDT
doesn't yet emit 1-byte arguments, but it may in the future.

* util.h (lex_cast<int8_t>): Read via int16_t to stay numeric.
  (lex_cast<uint8_t>): Same, with uint16_t.

13 years agocompat: adapt to old kernels' dislike of 'bool' type in runtime code
Frank Ch. Eigler [Fri, 19 Nov 2010 21:28:29 +0000 (16:28 -0500)]
compat: adapt to old kernels' dislike of 'bool' type in runtime code

* runtime/sym.c (_stp_build_id_check): Take int instead of bool.  Update
  callers.

13 years agotestsuite: unembed test sources
Frank Ch. Eigler [Fri, 19 Nov 2010 20:43:01 +0000 (15:43 -0500)]
testsuite: unembed test sources

Pleading guilty to
* youthful indiscretions
* providing unadmirable examples

Paying penance by
* separating teeny little non-tcl sources from tcl code
* swearing to do better in the future

13 years agoUpdated stapusr/stapdev requirements in stap.1.
David Smith [Fri, 19 Nov 2010 20:16:53 +0000 (14:16 -0600)]
Updated stapusr/stapdev requirements in stap.1.

13 years agosdt_types: remove manual type-casting
Josh Stone [Fri, 19 Nov 2010 04:42:33 +0000 (20:42 -0800)]
sdt_types: remove manual type-casting

For now, remove the int() and short() typecasting, as it seems to be
working without.  We should try as much as possible to fix these issues
in the translator and/or sdt.h before masking it in the test.

13 years agoCast the proper sign and size of SDT constant args
Josh Stone [Fri, 19 Nov 2010 04:06:52 +0000 (20:06 -0800)]
Cast the proper sign and size of SDT constant args

* tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_target_symbol):
  For the constant case, we still need to do some typecasting, as gcc
  doesn't necessarily match the sign of the constant to the type.

13 years agoCast the proper sign and size of SDT register args
Josh Stone [Fri, 19 Nov 2010 03:32:56 +0000 (19:32 -0800)]
Cast the proper sign and size of SDT register args

* tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_target_symbol):
  For the REGISTER case, insert a typecast to deal with truncation and
  sign-extension of the argument as needed.

13 years agosdt_types: Use direct array args rather than &array when possible
Josh Stone [Fri, 19 Nov 2010 03:16:57 +0000 (19:16 -0800)]
sdt_types: Use direct array args rather than &array when possible

13 years agosdt_types: add a PASS statement for bitfields_small_var
Josh Stone [Fri, 19 Nov 2010 00:20:48 +0000 (16:20 -0800)]
sdt_types: add a PASS statement for bitfields_small_var

13 years agoDon't autoconf systemtap_session::NSPR_Initialized
Josh Stone [Thu, 18 Nov 2010 00:31:47 +0000 (16:31 -0800)]
Don't autoconf systemtap_session::NSPR_Initialized

The 1-byte saving of an autoconfed bool isn't worth the headache of
mismatched definitions, even if we've resolved that.

13 years agoRemove dead code from systemtap_session
Josh Stone [Wed, 17 Nov 2010 23:05:07 +0000 (15:05 -0800)]
Remove dead code from systemtap_session

These two functions are dupes of code in main.cxx.

* session.cxx (parse_kernel_config): Removed.
  (parse_kernel_exports): Removed.

13 years agoMake sure we all use the same systemtap_session
Josh Stone [Wed, 17 Nov 2010 22:55:24 +0000 (14:55 -0800)]
Make sure we all use the same systemtap_session

In particular, if some sources don't include config.h, then they'll be
missing HAVE_NSS, which changes the layout of systemtap_session.

* session.h: #include "config.h", so everyone gets HAVE_NSS.

13 years agoAdd user_{int8,int16,uint16,int32,uint32,int64}.
Stan Cox [Wed, 17 Nov 2010 16:57:04 +0000 (11:57 -0500)]
Add user_{int8,int16,uint16,int32,uint32,int64}.

* conversions.stp (STP_GET_USER): New.  Use it to define...
(user_{int{8,16,32,64},uint{16,32}}) New. Names derive from types.h.
(user_char,user_short,user_int): Use STP_GET_USER.

* tapsets.cxx (uprobe_var_expanding_visitor::visit_target_symbol):
Use user_intN tapsets.

* sdt_types.c (unsigned_short_int_var,unsigned_int_var): New

* sdt_types.stp (unsigned_short_int_var,unsigned_int_var): New

13 years agoCVE-2010-4170, CVE-2010-4171: staprun module loading/unloading security fixes
Frank Ch. Eigler [Wed, 17 Nov 2010 14:57:23 +0000 (09:57 -0500)]
CVE-2010-4170, CVE-2010-4171: staprun module loading/unloading security fixes

We would like to thank Tavis Ormandy for reporting this issue.

* runtime/staprun/staprun.c (enable_uprobes): Don't run /sbin/modprobe
  directly, since it takes more inputs than we have tried to sanitize.
  (remove_module): Call init_ctl_channel on putative stap module name,
  to check that it's our own stap module.
  (init_staprun): Do remove/retry via remove_module rather than
  underchecked delete_module(2).
* runtime/staprun/ctl.c (init_ctl_channel): Check ownership of
  .ctl files, to preclude manipulation of some other stapusr member's modules.
* runtime/staprun/Makefile.am, systemtap.spec: Install staprun as
  mode 04110, group stapusr.
* README.security, runtime/staprun/staprun.8: Note new stapdev/stapusr
  joint requirements.

13 years agoUse output_exportconf for finding tsc_khz
Josh Stone [Tue, 16 Nov 2010 21:42:25 +0000 (13:42 -0800)]
Use output_exportconf for finding tsc_khz

* buildrun.cxx (compile_pass): Switch tsc_khz to output_exportconf.
* runtime/autoconf-tsc-khz.c: Delete this version-based check.

13 years agoAdd a fallback for kernels not exporting add_timer_on
Josh Stone [Tue, 16 Nov 2010 21:20:53 +0000 (13:20 -0800)]
Add a fallback for kernels not exporting add_timer_on

Commit 3fd1c49 regressed for kernels which don't EXPORT add_timer_on.

* buildrun.cxx (compile_pass): Test for add_timer_on's export.
* runtime/time.c (_stp_init_time, __stp_init_time): Restore the
  IPI-add_timer as a fallback.

13 years agoPR11735: Hash ldd/vdso unwindsym_modules too
Josh Stone [Tue, 16 Nov 2010 02:08:58 +0000 (18:08 -0800)]
PR11735: Hash ldd/vdso unwindsym_modules too

* translate.cxx (prepare_symbol_data): Do add_unwindsym_ldd/vdso here.
  (prepare_translate_pass): Call above, and placeholder for the future.
* main.cxx (passes_0_4): Call prepare_translate_pass before checking the
  cache, so we have more complete unwindsym_modules.

13 years agoPR11735: Hash unwindsym_modules as full paths
Josh Stone [Tue, 16 Nov 2010 01:53:22 +0000 (17:53 -0800)]
PR11735: Hash unwindsym_modules as full paths

* hash.cxx (find_script_hash): Use hash::add_path instead of plain add.

13 years agouprobes: Clean up after vfork-exec
Josh Stone [Sat, 13 Nov 2010 01:14:52 +0000 (17:14 -0800)]
uprobes: Clean up after vfork-exec

When a vfork'ed thread execs, we don't want to remove the probes from
the vfork parent, but we still need to clean up the thread associations.
Otherwise, the newly-execed process won't have the right accounting for
its SSOL area.

* runtime/uprobes2/uprobes.c (uprobe_report_exec): Clean up thread info
  when a vfork'ed task execs.
* runtime/uprobes/uprobes.c (uprobe_report_exec): Ditto.

13 years agotapset: add buildok test for inode_name()
Frank Ch. Eigler [Fri, 12 Nov 2010 21:33:43 +0000 (16:33 -0500)]
tapset: add buildok test for inode_name()

13 years agotapset: new inode_name tapset function
Jeff Moyer [Fri, 12 Nov 2010 21:29:20 +0000 (16:29 -0500)]
tapset: new inode_name tapset function

13 years agoRemove unfinished sentence from stap.1
Adrien Kunysz [Fri, 12 Nov 2010 19:26:24 +0000 (14:26 -0500)]
Remove unfinished sentence from stap.1

The problem was introduced in commit 98aab489.

13 years agoPR12164: Emit kprobes-sdt goo only when needed
Josh Stone [Thu, 11 Nov 2010 21:11:50 +0000 (13:11 -0800)]
PR12164: Emit kprobes-sdt goo only when needed

This stuff is only used for apps compiled with EXPERIMENTAL_KPROBE_SDT,
so we don't need it most of the time.

* runtime/kprobes-common.c (stap_kprobe_process_found,
  stap_kprobe_mmap_found): Only create #ifdef KPROBES_TASK_FINDER.
* tapsets.cxx (dwarf_derived_probe::join_group): Only enable_task_finder
  in the session if a semaphore is present.
  (dwarf_derived_probe_group::enroll): Remember if any has_semaphores.
  (dwarf_derived_probe_group::emit_module_decls): Predicate sdt and
  task_finder code on has_semaphores.
  (dwarf_derived_probe_group::emit_module_init): Ditto.
  (dwarf_derived_probe_group::emit_module_exit): Ditto.

13 years agoruntime: tolerate overlong section/symbol names better
Frank Ch. Eigler [Wed, 10 Nov 2010 16:57:43 +0000 (11:57 -0500)]
runtime: tolerate overlong section/symbol names better

* runtime/staprun/staprun.c (send_a_relocation): Don't
  complain about overlong names, except if very verbose.
  Triple-check null termination of surviving strings.

13 years agoreleng: tweak build ordering to get code first, docs last
Frank Ch. Eigler [Wed, 10 Nov 2010 16:22:18 +0000 (11:22 -0500)]
releng: tweak build ordering to get code first, docs last

* Makefile.am (SUBDIRS): Build . and runtime/staprun first.
* Makefile.in: Regenerated.

13 years agoregen misc. Makefile.in's due to earlier addition of support_section_question
Frank Ch. Eigler [Wed, 10 Nov 2010 16:21:38 +0000 (11:21 -0500)]
regen misc. Makefile.in's due to earlier addition of support_section_question

13 years agoruntime: bump up module/symbol name length limits
Frank Ch. Eigler [Wed, 10 Nov 2010 16:13:26 +0000 (11:13 -0500)]
runtime: bump up module/symbol name length limits

Due to a report that kernel modules written with C++ inside sometimes
grow extra-long sections:

* runtime/transport/transport_msgs.h: Double
  STP_MODULE_NAME_LEN and STP_SYMBOL_NAME_LEN to 128.

13 years agoKeep running buildid.exp if a test fails.
Stan Cox [Wed, 10 Nov 2010 15:49:08 +0000 (10:49 -0500)]
Keep running buildid.exp if a test fails.

* buildid.exp:  Only quit if a compile or link fails.

13 years agoMake the arg of dwflpp::function_scope_matches a reference
Josh Stone [Tue, 9 Nov 2010 21:08:03 +0000 (13:08 -0800)]
Make the arg of dwflpp::function_scope_matches a reference

13 years agoTest user mode build id checking.
Stan Cox [Tue, 9 Nov 2010 20:37:42 +0000 (15:37 -0500)]
Test user mode build id checking.

* buildid.exp: New.

13 years agoPR11811: news blurbage
Frank Ch. Eigler [Mon, 8 Nov 2010 19:54:09 +0000 (14:54 -0500)]
PR11811: news blurbage

13 years agoPR11811: warn on missing unwind info with 'stap -d FOO'
Frank Ch. Eigler [Mon, 8 Nov 2010 19:48:01 +0000 (14:48 -0500)]
PR11811: warn on missing unwind info with 'stap -d FOO'

* unwind.c (unwind_frame): Demote common warnings to dbug_unwind messages.
  (unwind): Print a warning for unwind operations foiled by modules that
  did not have pre-uploaded unwind data.
* buildrun.cxx (compile_pass): Check for exported __module_text_address.

13 years agofix accidental prefix '/' in abbreviated module name in backtraces
Frank Ch. Eigler [Mon, 8 Nov 2010 19:47:04 +0000 (14:47 -0500)]
fix accidental prefix '/' in abbreviated module name in backtraces

* runtime/sym.c (_stp_snprint_addr): Use strrchr correctly.

13 years agoPR12168: eliminate duplicate run-time warning messages
Frank Ch. Eigler [Mon, 8 Nov 2010 16:26:19 +0000 (11:26 -0500)]
PR12168: eliminate duplicate run-time warning messages

* runtime/staprun/mainloop.c (stp_main_loop STP_OOB_DATA):
  Rewrite WARNING handling.  Include optional duplicate-elimination
  with size-limited glibc tsearch() tree.
* testsuite/systemtap.base/warnings2.exp: New test.
* NEWS: Mention this.

13 years agoPR12168: extend staprun with -w (suppress warnings) option.
Frank Ch. Eigler [Sun, 7 Nov 2010 22:30:35 +0000 (17:30 -0500)]
PR12168: extend staprun with -w (suppress warnings) option.

* buildrun.cxx: Pass -w to staprun.
* runtime/staprun/common.c: Parse new -w.  Document old -u.
* runtime/staprun/staprun.8: Ditto.

13 years agoPR11811 prep: save full mmpath for found vmas
Frank Ch. Eigler [Sun, 7 Nov 2010 22:09:57 +0000 (17:09 -0500)]
PR11811 prep: save full mmpath for found vmas

Extend the print_*backtrace symbol names with the full path
of the user-space ELF module, not just the basename.  This
requires saving a char[] copy in the __stp_tf_vma_entry
structure instead of a char* pointing into a dentry.d_name.
-DTASK_FINDER_VMA_ENTRY_PATHLEN governs copy length.

* runtime/task_finder_vma.c (__stp_tf_vma_entry): Change
  char*name -> char[]path field.  Update manipulating
  functions accordingly.
* runtime/vma.c (_stp_vma_mmap_cb): Pass mmpath to tf-vma table
  if available.
* testsuite/systemtap.context/usymbols.exp: Update for expected
  full path in output string.
* NEWS: Mention change.
* runtime/sym.h (_STP_SYM_MODULE_BASENAME): New flag.
  (_STP_SYM_SIMPLE): Include it.
* runtime/sym.c (_stp_snprint_addr): Process it.

13 years agofix -DDEBUG_UNWIND compile warning via printf %ld & casting
Frank Ch. Eigler [Sun, 7 Nov 2010 22:09:10 +0000 (17:09 -0500)]
fix -DDEBUG_UNWIND compile warning via printf %ld & casting

13 years agotweak tz_ctime() parametrization to satisfy kerneldoc
Frank Ch. Eigler [Sun, 7 Nov 2010 12:36:16 +0000 (07:36 -0500)]
tweak tz_ctime() parametrization to satisfy kerneldoc

13 years agoAdd build id support for user modules.
Stan Cox [Sat, 6 Nov 2010 03:02:39 +0000 (23:02 -0400)]
Add build id support for user modules.

* sym.c (_stp_build_id_check): New.  Moved the build id check code from
 _stp_module_check and changed...
(_stp_module_check): to use it.
(_stp_usermodule_check): New.  This is called from the
task manager callback stap_uprobe_change_plus for the process found and
mmap found cases.

* translate.cxx (dump_unwindsyms): Don't stop if it isn't a kernel module.
Set build_id_vaddr for user modules.  Output module->build_id_offset as an
absolute address.

* uprobes-common.c (stap_uprobe_change_plus): Call _stp_usermodule_check.

13 years agoPR12195: pass user-space timezone at script startup
Frank Ch. Eigler [Sat, 6 Nov 2010 02:10:26 +0000 (22:10 -0400)]
PR12195: pass user-space timezone at script startup

* runtime/transport/transpot_msgs.h: Declare STP_TZINFO message type.
* runtime/staprun/staprun.c (send_tzinfo): New function to send time zone
  at startup.
* runtime/transport/control.c (_stp_ctl_write_cmd): Allow this message.
* runtime/transport/transport.c (_stp_handle_tzinfo): New function to
  process this message and declare various globals.
* tapset/tzinfo.stp: New tapset to access those globals.
* testsuite/buildok/timestamp-embedded.stp: Extend test.
* NEWS: Mention tz_ctime().
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Extract docs from new tapset.

13 years agoMake pfiles kneel before the frame-size overlord
Josh Stone [Fri, 5 Nov 2010 21:45:59 +0000 (14:45 -0700)]
Make pfiles kneel before the frame-size overlord

In socket_optname, there's an optname_entries mapping array.  On 64-bit,
each item is 24 bytes, so with 14 entries that's 336 bytes.  That
doesn't need to be on the stack -- static const it is.

13 years agoAdd make targets "uprobes" and "install-uprobes"
Josh Stone [Fri, 5 Nov 2010 19:36:14 +0000 (12:36 -0700)]
Add make targets "uprobes" and "install-uprobes"

This builds uprobes.ko in $srcdir and $DESTDIR, respectively,
because I'm too lazy to type it out all the time.

13 years agoPR10821: Remove large stack variables from the unwinder
Josh Stone [Fri, 5 Nov 2010 19:16:22 +0000 (12:16 -0700)]
PR10821: Remove large stack variables from the unwinder

We tend to use the percpu CONTEXT as a pre-allocated stack, so add the
large unwinder variable there too.

* runtime/unwind.c (unwind, unwind_frame): Use an unwind_context
  parameter for the larger data needed.
* runtime/stack-$arch.c (__stp_stack_print): Add the unwind_context
  parameter, and use it for the x86 versions with a dwarf unwinder.
* runtime/stack.c (_stp_stack_print, _stp_stack_sprint): Add the
  unwind_context parameter and pass it along.
* translate.cxx (c_unparser::emit_common_header): Add unwind_context the
  the global CONTEXT when we NEED_UNWIND_DATA.
* tapset/context-unwind.stp (*backtrace): Use CONTEXT->uwcontext.
* tapset/ucontext-unwind.stp (*backtrace): Use CONTEXT->uwcontext.
* buildrun.cxx (compile_pass): Tighten the frame warning to 256 bytes.

13 years agoUpdated memory.stp, rpc.stp, task.stp, and vfs.stp for 2.6.36.
David Smith [Thu, 4 Nov 2010 21:30:09 +0000 (16:30 -0500)]
Updated memory.stp, rpc.stp, task.stp, and vfs.stp for 2.6.36.

* tapset/memory.stp (vm.oom_kill): Added oom_kill_process().
* tapset/rpc.stp (sunrpc.clnt.call_sync): Updated for 2.6.36.
  (sunrpc.clnt.call_async): Ditto.
* tapset/task.stp (task_gid): Updated for 2.6.36 by defining and using
  task_gid().
  (task_egid): Updated for 2.6.36 by defining and using task_egid().
* tapset/vfs.stp (_vfs.block_prepare_write): Update for 2.6.36 by using
  __block_write_begin() as an alternative to __block_prepare_write().
  (_vfs.block_write_begin): Updated for 2.6.36.

13 years agoTest that uprobes supports "rep ret"
Josh Stone [Thu, 4 Nov 2010 02:27:54 +0000 (19:27 -0700)]
Test that uprobes supports "rep ret"

We've made a special case in uprobes to support this sequence, since it
does occur in normal gcc output, so make sure of that.  At the same
time, test that we reject other prefixes like "repnz ret", even though
we might be able to support them after more analysis.

13 years agouprobes_i386: backport check_legacy_prefix from uprobes2
Josh Stone [Thu, 4 Nov 2010 01:41:09 +0000 (18:41 -0700)]
uprobes_i386: backport check_legacy_prefix from uprobes2

Without this, we can't give "special" prefixed instructions the
treatment they deserve. (e.g. rep-ret)

13 years agobuilding: add placeholder for "make -j<N>" runs to build substuff
Frank Ch. Eigler [Wed, 3 Nov 2010 20:55:52 +0000 (16:55 -0400)]
building: add placeholder for "make -j<N>" runs to build substuff

13 years agouprobes: Fix post_ssout handling of "rep ret" on x86
Josh Stone [Wed, 3 Nov 2010 17:34:39 +0000 (10:34 -0700)]
uprobes: Fix post_ssout handling of "rep ret" on x86

That odd sequence is apparently used to coerce better behavior from the
branch predictor on AMD K8.  GCC does this, so we need to be prepared to
deal with it.

In uprobe_post_ssout, most instructions just need a relative %ip fixup
after single-stepping out-of-line.  A few are special though, either
because their new %ip is not relative, or because their return address
on the stack needs that relative SSOL adjustment, or even both.  This
oddball "rep ret" is such a case, but we were missing the proper fixup
due to the unexpected prefix.

This patch moves that ip-fixup decoding to the validation phase in
setup_uprobe_post_ssout, saving the flags UPFIX_RETURN and UPFIX_ABS_IP
as needed.  In this same step, we reject probing these instructions if
they have a prefix, as we haven't determined the correct behavior for
them.  For "rep ret" we make an explicit exception, since we know that
behaves just like a bare "ret".

13 years agoEdits to the User-space chapter.
William Cohen [Wed, 3 Nov 2010 15:22:45 +0000 (11:22 -0400)]
Edits to the User-space chapter.

13 years agoRestore legacy domain (localhost) in server cert for stap-client.
Dave Brolley [Tue, 2 Nov 2010 21:33:36 +0000 (17:33 -0400)]
Restore legacy domain (localhost) in server cert for stap-client.

13 years agoImprove gettimeofday stability
Josh Stone [Tue, 2 Nov 2010 21:01:23 +0000 (14:01 -0700)]
Improve gettimeofday stability

These are a few tweaks to improve the stability of our gettimeofday
startup and shutdown.  Hopefully this helps with PR10651 and PR12182,
but that's not been confirmed yet.

* runtime/runtime.h: Don't include time.c here.
* translate.cxx (c_unparser::emit_common_header): Include time.c here,
  only if NEEDed (so we also ensure init/kill_time will be called).
  (c_unparser::emit_module_init): Change to STAP_SESSION_STOPPED for the
  final cleanup efforts, especially for time.c to wrap up.
  (c_unparser::emit_module_exit): Ditto.
* runtime/time.c (__stp_time_timer_callback): Use the session_state
  instead of stp_timer_reregister, and continue until STOPPED.
  (__stp_init_time): Don't add_timer from the IPI.
  (_stp_init_time): Instead, add_timer_on each cpu here.

13 years agoAdd comment to latencytap.stp on where the translations came from.
William Cohen [Tue, 2 Nov 2010 18:57:36 +0000 (14:57 -0400)]
Add comment to latencytap.stp on where the translations came from.

13 years agoAdd information about uprobe module in beginners guide
William Cohen [Tue, 2 Nov 2010 17:32:10 +0000 (13:32 -0400)]
Add information about uprobe module in beginners guide

13 years agofix memory double-free in module_cache
Frank Ch. Eigler [Tue, 2 Nov 2010 03:05:56 +0000 (23:05 -0400)]
fix memory double-free in module_cache

The kmodule.stp test case could evoke a double-free of module-info
structs, since these were shared pointers, and not managed by GC.
Oh yeah, what GC, in the year 2010.

* dwflpp.cxx (dwflpp dtor): Don't delete shared mod_info ptr.
  (module_cache dtor): New function.
* dwflpp.h: Declare.
* tapsets.cxx (delete_session_module_cache): New function.
  (several::build_no_more): Call it.
  (dwarf_build_no_more): Use delete_map<> template.

13 years agoImproved fork/vfork tests for RHEL5.
David Smith [Mon, 1 Nov 2010 20:37:23 +0000 (15:37 -0500)]
Improved fork/vfork tests for RHEL5.

* testsuite/systemtap.clone/dtrace_fork_exec.exp: Improve output string to
  handle parent/child execution order differences.
* testsuite/systemtap.clone/dtrace_vfork_parent.c: Added include files to
  avoid compile error on RHEL5.
* testsuite/systemtap.clone/dtrace_vfork_parent.c: Ditto.

13 years agoImprove handling of vfork'ed processes for uprobes version 1.
David Smith [Mon, 1 Nov 2010 20:32:57 +0000 (15:32 -0500)]
Improve handling of vfork'ed processes for uprobes version 1.

* runtime/uprobes/uprobes.c (insert_bkpt): Don't log EEXIST errors (since
  systemtap inserts duplicate probes).
  (uprobe_report_exec): Only cleanup if this is the last thread.  Without
  this change, vfork'ed processes doing an exec weren't handled correctly.

13 years agoPR11376: reinforce doc blurbage for process(PID).statement(ADDR).absolute
Frank Ch. Eigler [Mon, 1 Nov 2010 19:09:54 +0000 (15:09 -0400)]
PR11376: reinforce doc blurbage for process(PID).statement(ADDR).absolute

13 years agoPR11376: a quickie test case for process(PID).statement(NUM).absolute
Frank Ch. Eigler [Mon, 1 Nov 2010 18:55:42 +0000 (14:55 -0400)]
PR11376: a quickie test case for process(PID).statement(NUM).absolute

13 years agoPR11376: fix generated probe definition struct for process(PID).statement(ADDR).absolute*
Jim Keniston [Mon, 1 Nov 2010 18:49:54 +0000 (14:49 -0400)]
PR11376: fix generated probe definition struct for process(PID).statement(ADDR).absolute*

13 years agoAdd Chapter about user-space probing to the Beginner's guide.
William Cohen [Mon, 1 Nov 2010 19:08:31 +0000 (15:08 -0400)]
Add Chapter about user-space probing to the Beginner's guide.

13 years agoPR12176 String literal at end of file crashes parser.
Mark Wielaard [Mon, 1 Nov 2010 10:55:35 +0000 (11:55 +0100)]
PR12176 String literal at end of file crashes parser.

* parse.cxx (parser::parse_literal): Only inspect next token if there is one.
* testsuite/parseok/end_string.stp: New testcase.

13 years agoexamples: Print PID of peer for unix sockets
Timo Juhani Lindfors [Fri, 29 Oct 2010 12:44:30 +0000 (15:44 +0300)]
examples: Print PID of peer for unix sockets

This information is very useful for debugging but is not normally
available to userland since /proc/net/unix does not list it.

13 years agoPR12169: fix tokenize()
Frank Ch. Eigler [Thu, 28 Oct 2010 22:42:35 +0000 (18:42 -0400)]
PR12169: fix tokenize()

* tapset/tokenize.stp: New file for tokenize().  Use per-context statics.
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Pull it into new docs.
* tapset/string.stp: Remove old tokenize() code.
* translate.cxx (emit_common_header): Add STAP_NEED_CONTEXT_TOKENIZE bits.
  (translate_pass): Emit global %{ %} embeds before context definition.

13 years agoPR12169: avoid unprivileged use of tokenize() until fixed
Frank Ch. Eigler [Thu, 28 Oct 2010 22:07:30 +0000 (18:07 -0400)]
PR12169: avoid unprivileged use of tokenize() until fixed

13 years agoRevert "git-version: use git status --porcelain to detect tree dirtiness"
Frank Ch. Eigler [Thu, 28 Oct 2010 18:43:04 +0000 (14:43 -0400)]
Revert "git-version: use git status --porcelain to detect tree dirtiness"

This reverts commit 3c29b815f282a0629b85af1758b256bf790bf371.

Meh, old git 1.5* doesn't support this.

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