systemtap release 1.5

From: Stan Cox
Date: Tue May 24 2011 - 12:36:33 EST


The systemtap team announces release 1.5.

The "--remote USER@HOST" functionality is now more robust, and can also fan
out on multiple targets, I18N is now supported via GNU Gettext, the compile
server and related tools are now re-implemented in C++,
process("...").library("...") probes are now supported, build-id is checked
for userspace applications,

= Where to get it

http://sourceware.org/systemtap/ - our project page
http://sourceware.org/systemtap/ftp/releases/systemtap-1.5.tar.gz
http://koji.fedoraproject.org/koji/packageinfo?packageID=615
git tag release-1.5 (commit a8a01c8a26 )

There have been over 350 commits since the last release.
There have been over 35 bugs/features fixed since the last release.

= How to build it

See the README and NEWS files at
http://sourceware.org/git/?p=systemtap.git;a=tree
Further information at http://sourceware.org/systemtap/wiki/

= Systemtap frontend (stap) changes

- The command line option --version has been added.

- A new command line option, --use-server-on-error[=yes|no] is available
for stap. It instructs stap to retry compilation of a script using a
compile server if it fails on the local host. The default setting
is 'no'.

- GNU Gettext has now been intergrated with systemtap. Our translation
page can be found at http://www.transifex.net/projects/p/systemtap/ .
"make update-po" will generate the necessary files to use translated
messages. Please refer to the po/README file for more info and
please consider contributing to this I18N effort!

- stapio will now report if a child process has an abnormal exit along with
the associated status or signal.

- Compiler optimization may sometimes result in systemtap not being able to
access a user-space probe argument. Compiling the application with
-DSTAP_SDT_ARG_CONSTRAINT=nr will force the argument to be an immediate or
register value which should enable systemtap to access the argument.

- The "--remote USER@HOST" functionality can now be specified multiple times
to fan out on multiple targets. If the targets have distinct kernel and
architecture configurations, stap will automatically build the script
appropriately for each one. This option is also no longer considered
experimental.

- The NSS certificate database generated for use by the compile server is now
generated with no password. Previously, a random password was generated and
used to access the database. This change should be transparent to most users.
However, if you are prompted for a password when using systemtap, then
running $libexecdir/stap-gen-cert should correct the problem.

- The following deprecated tools have been removed:
stap-client
stap-authorize-server-cert
stap-authorize-signing-cert
stap-find-or-start-server
stap-find-servers
Use the --use-server, --trust-server and --list-servers options of stap
instead.

= Systemtap script language changes

- process("...").library("...") probes are now supported. Wildcards
are supported in the library-name part, to refer to any shared
library that is required by process-name, which matches the glob
pattern and the rest of the probe point.

- process.mark now supports $$parms for reading probe parameters.

= Systemtap external dependents changes

- Systemtap checks that the build-id of the module being probed matches the
build-id saved in the systemtap module. Invoking systemtap with
-DSTP_NO_BUILDID_CHECK will bypass this build-id runtime verification. See
man ld(1) for info on --build-id.

= Systemtap tapset changes

- Improved ptrace syscall decoding.

- eventcount.stp now allows for event counting in the format of
'stap eventcount.stp process.end syscall.* ...', and also reports
corresponding event tid's.

- The new addr() function returns the probe's instruction pointer.

- The timestamp tapset includes jiffies() and HZ() for lightweight approximate
timekeeping.

= Systemtap example changes

- Eventcounting and tcp_init_cwnd examples have been added.

= Contributors for this release

Lukas Berk, Dave Brolley, William Cohen, Stan Cox, Frank Ch. Eigler,
Rayson Ho, *Jan Kratochvil, Adrien Kunysz, *Fabio Olive Leite, Roland McGrath,
PrzemysÅaw PaweÅczyk, *Bryn Reeves, *Kim van der Riet, *Nathan Scott,
David Smith, Josh Stone, Mark Wielaard,

Special thanks to new contributors, marked with '*' above.

= Examples of tested kernel versions

2.6.9-89 (i686)
2.6.18 (i686,x86_64)
2.6.32.12 (ppc64)
2.6.35 (x86_64)
2.6.37 (i686,x86_64)

= Known issues with this release

- Some kernel crashes continue to be reported when a script probes
broad kernel function wildcards.

- Using the new "stap -DSTP_ALIBI" option, nearly all script-based
systemtap-generated code is compiled out of the resulting module,
for use as a test of the kernel probing infrastructure.

= Bugs fixed for this release

3823 internationalize the thing
6880 more syntax for shared library probing
9699 'context.exp' - test fails with 2.6.28-git3 kernel on powerpc
10289 stap probes user space markers don't work with 32-on-64 executables
10461 Enhance support for probing C++ binaries
10878 support $$args/$$parms for process().mark() sdt probes
10917 environment variable expansion in executable search
11445 Check that assert_is_my_proc check is within all uprobes/utrace callback entry points
11844 --use-server-on-error option
11862 remove obsolete stap-client script and friends
12099 process("/path/to/shell-script") probes
12115 run scripts remotely
12138 sdt_misc.exp fails most ptr types on i686
12139 SDT V3 fails with structs that are only declared
12209 accept and ignore %l (long) option in *printf family
12211 stapio shouldn't hide the death of its child
12411 Markers using %rbx register incorrectly masked to low byte
12412 stale reference
12413 kprocess.* support PIDs but not TIDs
12419 add "repnz ret" to uprobes whitelist on x86*
12428 Document Compile Server/Client Setup and Admin
12458 Incorrect module bias on prelinked "find"
12470 Fix _wait4_opt_str
12471 Support wait4 *status printing
12498 systemtap.examples/process/noptrace hangs on RHEL4 because arguments are wrong
12500 ptrace decoder
12508 event-counting command line option
12514 missing build-id tolerance
12536 sdt v>=2 argument parsing can't parse '4+4(%esp)'
12540 "Could not obtain information on password file" build error
12543 PKGLIBEXECDIR undefined, causing uprobes.ko build to fail
12560 built-in safer mini-ldd
12592 Compile server should support non-standard kernel paths
12612 Generate modules compatible with older staprun
12638 use built-in mini-ldd in translate.cxx
12645 exelib.exp failures (and hung stapio's) on s390x
12729 stap error message needs improvement
12741 rip-relative instruction is not detected as such
12749 iterate_over_libraries should not use popen
12770 loc2c generates an unsupported deref(8,...) on i686
12781 task_finder __stp_utrace_task_finder_target_syscall_entry code a bit fat
12784 CVE-2011-1781, CVE-2011-1769: correct DW_OP_{mod,div} division-by-zero bug
12785 systemd-managed tasks not visible to process probes on fedora 15

= Test results on various systems

- After running "sudo make installcheck" from the test suite, on a
suitably equipped machine (kernel debugging data and other stuff
installed), you should see 1600-2000 passes and a small handful of
failures. On a machine without kernel utrace support, you should
see 800-1000 passes.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/