SystemTap release 0.9.9

From: Josh Stone
Date: Wed Aug 05 2009 - 00:28:50 EST


The SystemTap team proudly announces release 0.9.9.

faster script compilation, improved userspace probing, support for new
DWARF_OPs, self-monitoring markers, enhanced variable access, new SNMP
tapset, new dentry tapset, bug fixes, and more!

= Where to get it

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

= 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

- Translation pass 2 is significantly faster by avoiding unnecessary
searching through a kernel build/module directory tree.

- SystemTap now has userspace markers in its own binaries, and the stap
tapset provides the available probepoints and local variables.

- Systemwide kernel .function.return (kretprobe) maxactive defaults may
be overridden with the -DKRETACTIVE=nnn parameter.

- When compiled against elfutils 0.142 systemtap now handles the new
DW_OP_call_frame_CFA generated by by GCC.

- Dwarf probes now show parameters and local variables in the verbose
listing mode (-L).

- User space PROBE marks are not always found with or without separate
debuginfo. The .probes section itself is now always put in the main
elf file and marked as allocated. When when building pic code the
section is marked writable. fixes the selinux memory check problems
seen with programs using STAP_PROBES.

- The stapgraph application can generate graphs of data and events
emitted by systemtap scripts in real time. Run "stapgraph
testsuite/systemtap.examples/general/grapher.stp" for an example of
graphing the system load average and keyboard events.

= SystemTap script language changes

- The syntax for dereferencing $target variables and @cast() gained new
capabilities:
- Array indexes can now be arbitrary numeric expressions.
- Array subscripts are now supported on pointer types.
- An '&' operator before a @cast or $target returns the address of the
final component, especially useful for nested structures.

= SystemTap tapset changes

- statement() probes can now override "address not at start of statement"
errors in guru mode. They also provide alternative addresses to use
in non-guru mode.

- Symbol aliases are now resolved to their canonical dwarf names. For
example, probing "malloc" in libc resolves to "__libc_malloc".

- For reading all probe variables, kernel.mark now supports $$vars and
$$parms, and process.syscall now supports $$vars.

- The SNMP tapset provides probes and functions for many network
statistics. See stapprobes.snmp(3stap) for more details.

- The dentry tapset provides functions to map kernel VFS directory entries
to file or full path names: d_path(), d_name() and reverse_path_walk().

- uprobes and ustack() are more robust when used on applications that
depend on prelinked/separate debuginfo shared libraries.

- Miscellaneous new tapset functions:
- pgrp() returns the process group ID of the current process
- str_replace() performs string replacement

= New script examples

- locks/bkl.stp Tracing contention on Big Kernel Lock
- locks/bkl_stats.stp Per-process statistics on Big Kernel Lock
- memory/numa_faults.stp Summarize process misses across NUMA nodes
- network/autofs4.stp Watch autofs4 operations
- network/sk_stream_wait_memory.stp Watch for filled network buffers
- network/tcpipstat.stp Display network statistics for TCP sockets
- process/chng_cpu.stp Monitor changes in processor executing a task
- process/forktracker.stp Trace creation of processes
- process/migrate.stp Track the migration of specific executables

= Code contributors for this release

Dave Brolley, David J. Wilder, David Smith, Don Domingo, Eugeniy
Meshcheryakov, Frank Ch. Eigler, Jeff Moyer, Josh Stone, Kent
Sebastian, Mark Wielaard, Masami Hiramatsu, PrzemysÅaw PaweÅczyk,
Robb Romans, Roland McGrath, Stan Cox, Tim Moore, Varun Chandramohan,
Wenji Huang, William Cohen

= Examples of tested kernel versions

2.6.18 (el5/ia64/i686/x86_64)
2.6.27.25 (f10/i686/x86_64)
2.6.29.5 (f11/i686/x86_64)
2.6.31 (i686/x86_64)

= Known issues with this release

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

= Bugs fixed for this release

2049 revise $target->subfield syntax
3498 speed up pass-2/3 via elfutils report_..._offline predicate
4166 Should support array-like indexing on $pointer variables
5930 need construct for $context variable address
9908 uprobes-free user-space markers
10075 emit more error message details in probe registration logic
10182 systemtap.spec should clean up old leftover runtime/uprobes/
10185 stap uprobe script on rawhide causes system crash
10258 procfs probes should not put strings on kernel stack
10273 uprobes fail to insert on prelinked library
10274 exelib optimized builds don't work
10277 some utf-8 chars (in script path names etc.) not escaped
10279 allow general override of kretprobe maxactive
10285 user space PROBE marks aren't found with separate debuginfo
10298 bring back NULL
10305 mark probes fail on prelinked shared library
10307 beginning of statement check should be overridden in guru mode
10308 beginning of statement check should provide alternatives
10313 Build error due to a deprecation in elfutils
10323 some ustack exelib.exp tests fail with prelinked shared libs
10327 follow symbol aliases for debuginfo search
10329 fix sdt.h license
10335 systemtap.base/strftime.exp hangs
10348 Compilation failure with gcc snapshot: switch jumps over init
10381 sdt.h macros create relocatable addresses in non-writable sect.
10386 itrace tests fail on 2.6.31-rc2 unknown symbol find_task_by_vpid
10388 Support DW_OP_call_frame_cfa
10398 DW_OP_call_frame CFA support doesn't work for prelink so's
10399 dtrace should obey prefix install path
10410 Add jmoyer's autofs4 / dentry scripts
10421 task.stp pid2task tapset function fails on 2.6.31-0.67.rc2
10424 All tracepoints are unusable if any one header is bad
10427 Multiple tracepoint OKs!
10453 crash testcase always fail because testlog.stp has been removed
10458 uaddr() returns one past current instruction for uprobes
10459 -w should squelch all warnings
10475 pointer-array confused about array element size

= 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 1100-1200 passes and a small handful of
failures.

--
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/