2009-06-12 01:03:18

by Josh Stone

[permalink] [raw]
Subject: SystemTap release 0.9.8

The SystemTap team proudly announces release 0.9.8.

Module signing, debuginfo package suggestions, system call dwarfless
probing, new tapset functions, support for 2.6.30 kernels, and many
bug fixes and miscellaneous speed improvements.

= Where to get it

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

= 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

- Module signing: If the appropriate nss libraries are available on your
system, stap will sign each compiled module using a self-generated
certificate. This is the first step toward extending authority to
load certain modules to unprivileged users. For now, if the system
administrator adds a certificate to a database of trusted signers
(stap-authorize-signing-cert), modules signed using that certificate
will be verified by staprun against tampering. Otherwise, you should
notice no difference in the operation of stap or staprun.

- Debuginfo suggestions: If a script fails in some way due to missing
debugging information, stap will try to query rpm for which package
supplied that binary and suggest the matching debuginfo packages to
install.

= SystemTap script language changes

- Using %M in print formats for hex dumps can now print entire buffers,
instead of just small numbers.

= SystemTap tapset changes

- Dwarfless syscalls: The nd_syscalls tapset is now available to probe
system calls without requiring kernel debugging information. All of
the same probepoints in the normal syscalls tapset are available with
an "nd_" prefix, e.g. syscall.open becomes nd_syscall.open. Most
syscall arguments are also available by name in nd_syscalls.

- Miscellaneous new functions:
- sid() returns the session ID of the current process
- stringat() indexes a single character from a string.

= New script examples

- io/ttyspy.stp Monitor tty typing
- process/schedtimes.stp Track time processes spend in various states

= Code contributors for this release

Ananth N Mavinakayanahalli, Dave Brolley, David Smith, Don Domingo,
Elliott Baron, Eugeniy Meshcheryakov, Frank Ch. Eigler, Jim Keniston,
JoeLynn Keniston, Josh Stone, Kai Meyer, Keiichi KII, Kent Sebastian,
Malte Nuhn, Mark Wielaard, Masami Hiramatsu, Petr Muller, Przemyslaw
Pawelczyk, Stan Cox, Sunzen Wang, Wenji Huang, William Cohen

= Examples of tested kernel versions

2.6.9 (el4/i386)
2.6.18 (el5/ia64/i686/x86_64-xen)
2.6.27.21 (f10/i686/x86_64)
2.6.29.4 (f11/i586/x86_64)
2.6.30 (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

3347 undesirable embedded-C functions at top level
5630 support for single-stepping in user-space
5635 unwind-data-based backtracing for userspace
6930 Flight Recorder on file
6933 Individual kprobes enable/disable support
9997 provide run-time advice on how to install needed debuginfo
10007 Some SystemTap tests need updates to handle SYSCALL_WRAPPERS
10082 add environment variable to pass -r RELEASE/PATH option
10091 Backward compatibility for insn probe point (itrace) on o...
10102 optional probe points should silently accept "probe point...
10117 on ppc64, tapset/context.stp is broken on older kernels
10130 Argument to mktemp should have at least 6 X's
10139 .probes section disappears into debuginfo
10172 sdt.h on powerpc Error: junk at end of line: `0'
10177 _stp_kill_time on RT-kernel hits BUG
10182 systemtap.spec should clean up old leftover runtime/uprobes/
10185 stap uprobe script on rawhide causes system crash
10190 Suppress registration warnings for optional probes
10206 symname() resolves incorrect symbols on ppc
10209 extend configury for --disable-translator
10232 backtrace through kretprobes via fallback unwinder
10260 Crash due to stale timer callbacks

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


2009-06-12 20:24:17

by Diego Calleja

[permalink] [raw]
Subject: Re: SystemTap release 0.9.8

On Viernes 12 Junio 2009 03:03:01 Josh Stone escribió:> The SystemTap team proudly announces release 0.9.8.
OK, I've been trying to run sucesfully systemtap for months, andI have never been able to run even the example scripts, there'salways something that breaks. So I must be doing something wrong,or there's something wrong somewhere. Here's the detailed outputor a failure (happens with any example script):
(PD: since systemtap seems to be affected by changes in the kernel version,are you planning to include systemtap in the linus tree, now that he thinksthat merging in the kernel tree userspace tools closely related to thekernel is a good thing?)
# sudo bin/stap -vvv share/doc/systemtap/examples/network/tcp.stp SystemTap translator/driver (version 0.9.8/0.131 commit release-0.9.8-0-ge1774a7) Copyright (C) 2005-2009 Red Hat, Inc. and others This is free software; see the source for copying conditions. Session arch: x86_64 release: 2.6.30 Created temporary directory "/tmp/stappAJDNk" Searched '/home/diego/código/systemtap/binarios/share/systemtap/tapset/x86_64/*.stp', found 3 Searched '/home/diego/código/systemtap/binarios/share/systemtap/tapset/*.stp', found 51 Pass 1: parsed user script and 54 library script(s) in 300usr/10sys/311real ms. blacklist regexps: blfn: ^(atomic_notifier_call_chain|default_do_nmi|__die|die_nmi|do_debug|do_general_protection|do_int3|do_IRQ|do_page_fault|do_sparc64_fault|do_trap|dummy_nmi_callback|flush_icache_range|ia64_bad_break|ia64_do_page_fault|ia64_fault|io_check_error|mem_parity_error|nmi_watchdog_tick|notifier_call_chain|oops_begin|oops_end|program_check_exception|single_step_exception|sync_regs|unhandled_fault|unknown_nmi_error|.*raw_.*lock.*|.*read_.*lock.*|.*write_.*lock.*|.*spin_.*lock.*|.*rwlock_.*lock.*|.*rwsem_.*lock.*|.*mutex_.*lock.*|raw_.*|.*seq_.*lock.*|atomic_.*|atomic64_.*|get_bh|put_bh|.*apic.*|.*APIC.*|.*softirq.*|.*IRQ.*|.*_intr.*|__delay|.*kernel_text.*|get_current|current_.*|.*exception_tables.*|.*setup_rt_frame.*|.*preempt_count.*|preempt_schedule|__switch_to)$ blfn_ret: ^(do_exit|sys_exit|sys_exit_group)$ blfile: ^(kernel/kprobes.c|arch/.*/kernel/kprobes.c|include/asm/io.h|include/asm/bitops.h|arch/.*/include/asm/io.h|arch/.*/include/asm/bitops.h|drivers/ide/ide-iops.c)$ parsed 'tcp_recvmsg' -> func 'tcp_recvmsg' focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' selected function tcp_recvmsg probe tcp_recvmsg@net/ipv4/tcp.c:1312 kernel reloc=.dynamic section=.text pc=0xffffffff805285b0 finding location for local 'sk' near address 0xffffffff805285b0, module bias 0x0 finding location for local 'len' near address 0xffffffff805285b0, module bias 0x0 finding location for local 'sk' near address 0xffffffff805285b0, module bias 0x0 finding location for local 'sk' near address 0xffffffff805285b0, module bias 0x0 finding location for local 'sk' near address 0xffffffff805285b0, module bias 0x0 finding location for local 'sk' near address 0xffffffff805285b0, module bias 0x0 focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for inet_sock(net/ipv4/ip_input.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for inet_sock(net/ipv4/ip_input.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for iphdr(net/ipv4/route.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for iphdr(net/ipv4/route.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for iphdr(net/ipv4/route.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for inet_sock(net/ipv4/ip_input.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for tcphdr(net/ipv4/ip_output.c) focused on module 'kernel = [0xffffffff80200000-0xffffffff808a1000, bias 0x0] file /lib/modules/2.6.30/build/vmlinux ELF machine |x86_64 (code 62) focused on module 'kernel' literal_stmt_for_pointer: finding value for inet_sock(net/ipv4/ip_input.c) Eliding unused function __get_skb_iphdr Eliding unused function __get_skb_iphdr_new Eliding unused function __get_skb_tcphdr Eliding unused function __get_skb_tcphdr_new Eliding unused function __ip_skb_daddr Eliding unused function __ip_skb_proto Eliding unused function __ip_skb_saddr Eliding unused function __tcp_skb_ack Eliding unused function __tcp_skb_dport Eliding unused function __tcp_skb_fin Eliding unused function __tcp_skb_psh Eliding unused function __tcp_skb_rst Eliding unused function __tcp_skb_sport Eliding unused function __tcp_skb_syn Eliding unused function __tcp_skb_urg Eliding unused function _dwarf_tvar_get_cast_10 Eliding unused function _dwarf_tvar_get_cast_12 Eliding unused function _dwarf_tvar_get_cast_13 Eliding unused function _dwarf_tvar_get_cast_14 Eliding unused function _dwarf_tvar_get_cast_15 Eliding unused function _dwarf_tvar_get_cast_16 Eliding unused function _dwarf_tvar_get_cast_17 Eliding unused function _dwarf_tvar_get_cast_18 Eliding unused function _dwarf_tvar_get_cast_19 Eliding unused function _dwarf_tvar_get_cast_8 Eliding unused function _dwarf_tvar_get_cast_9 Eliding unused function htonl Eliding unused function htonll Eliding unused function htons Eliding unused function ntohl Eliding unused function ntohll Eliding unused function ntohs Eliding unused function tcp_get_info_rto Eliding unused function tcp_get_info_snd_cwnd Eliding unused function tcp_sockopt_str Eliding unused function tcp_sockstate_str Eliding unused function tcp_ts_get_info_rcv_mss Eliding unused function tcp_ts_get_info_snd_ssthresh Eliding unused function tcp_ts_get_info_state Eliding unused global variable sockstate Eliding unused global variable sockstate_init_p Eliding unused global variable sockopt Eliding unused global variable sockopt_init_p Eliding assignment to name at operator '=' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:268:7 Eliding assignment to sock at operator '=' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:269:10 Eliding assignment to size at operator '=' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:270:10 Eliding assignment to daddr at operator '=' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:272:10 Eliding side-effect-free expression identifier 'name' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:268:2 Eliding side-effect-free expression identifier 'sock' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:269:2 Eliding side-effect-free expression identifier 'size' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:270:2 Flattening nested block operator '{' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:267:52 Eliding side-effect-free singleton block operator '{' at share/doc/systemtap/examples/network/tcp.stp:11:19 Eliding side-effect-free singleton block operator '{' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/ip.stp:34:1 Eliding side-effect-free singleton block operator '{' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/ip.stp:28:1 Eliding side-effect-free singleton block operator '{' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:78:43 Eliding side-effect-free singleton block operator '{' at /home/diego/código/systemtap/binarios/share/systemtap/tapset/tcp.stp:147:43 Eliding unused function _dwarf_tvar_get_len_1 Eliding unused function _dwarf_tvar_get_sk_0 Eliding unused local variable name in probe_1748 Eliding unused local variable sock in probe_1748 Eliding unused local variable size in probe_1748 Eliding unused local variable daddr in probe_1748 Changing _dwarf_tvar_get_sk_3 reference to _dwarf_tvar_get_sk_2 reference Changing _dwarf_tvar_get_sk_4 reference to _dwarf_tvar_get_sk_2 reference Changing _dwarf_tvar_get_sk_5 reference to _dwarf_tvar_get_sk_2 reference Pass 2: analyzed script: 2 probe(s), 10 function(s), 2 embed(s), 0 global(s) in 620usr/60sys/694real ms. probe_1748 locks nothing stap_dwarf_probe module[7] stap_dwarf_probe section[7] stap_dwarf_probe pp[55] dump_unwindsyms kernel index=0 base=0xffffffff80200000 Found build-id in kernel, length 20, end at 0xffffffff80578318 Found kernel _stext extra offset 0x9000 Pass 3: translated to C into "/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c" in 280usr/10sys/292real ms. Running make -C "/lib/modules/2.6.30/build" M="/tmp/stappAJDNk" modules V=1 make: Entering directory `/home/diego/código/linux' test -e include/linux/autoconf.h -a -e include/config/auto.conf || ( \ echo; \ echo " ERROR: Kernel configuration is invalid."; \ echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \ echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \ echo; \ /bin/false) mkdir -p /tmp/stappAJDNk/.tmp_versions ; rm -f /tmp/stappAJDNk/.tmp_versions/* make -f scripts/Makefile.build obj=/tmp/stappAJDNk gcc -Wp,-MD,/tmp/stappAJDNk/.stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.3.3/include -Iinclude -I/home/diego/código/linux/arch/x86/include -include include/linux/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -O2 -m64 -march=core2 -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -pg -Wdeclaration-after-statement -Wno-pointer-sign -fwrapv -Iinclude2/asm/mach-default -include /tmp/stappAJDNk/stapconf_d549f94e2acc8e3e6a565fb4f50c4265_458.h -freorder-blocks -Wno-unused -Werror -I"/home/diego/código/systemtap/binarios/share/systemtap/runtime" -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(stap_81fde145f94951b89c4fc6f9e2a1c96f_3784)" -D"KBUILD_MODNAME=KBUILD_STR(stap_81fde145f94951b89c4fc6f9e2a1c96f_3784)" -c -o /tmp/stappAJDNk/.tmp_stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.o /tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:232:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:232:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:271:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:271:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:310:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:310:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:349:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:349:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:388:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:388:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:437:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:437:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:486:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:486:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:535:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:535:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:584:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:584:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:625:18: error: octal escape sequence out of range/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:625:18: error: octal escape sequence out of rangeIn file included from /tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.c:1480:/tmp/stappAJDNk/stap-symbols.h:73294:9: error: octal escape sequence out of range/tmp/stappAJDNk/stap-symbols.h:73294:9: error: octal escape sequence out of rangemake[1]: *** [/tmp/stappAJDNk/stap_81fde145f94951b89c4fc6f9e2a1c96f_3784.o] Error 1????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?