This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: changes to runtime string functions
- From: William Cohen <wcohen at redhat dot com>
- To: Martin Hunt <hunt at redhat dot com>
- Cc: systemtap at sources dot redhat dot com
- Date: Thu, 01 Feb 2007 09:17:23 -0500
- Subject: Re: changes to runtime string functions
- References: <1170275669.25574.10.camel@dragon>
Martin Hunt wrote:
I have checked in a rewrite of the string functions in the runtime.
This is part of an effort to increase performance and reduce memory
usage. Many functions were eliminated and the symbol and stack code
required major editing. Only a few tapset functions needed to be
modified to use the new code and everything appears to be running fine
on x86_64 and i386. It would be nice if people with access to other
architectures could test and report back if there are any problems. Also
if you have embedded code that is not checked in and you use any of the
old string functions, you may need to update your code.
The most likely affected code is the stack trace stuff. Please try this
and see if it looks OK.
function print_stuff () {
print_regs()
print_backtrace()
print("--------\n")
bt = backtrace()
printf("the stack is %s\n", bt)
print("--------\n")
print_stack(bt)
print("--------\n")
}
probe kernel.function("uptime_read_proc") {
print("NOW IN UPTIME\n")
print_stuff ()
}
After starting this probe, run "uptime" to trigger it.
Martin
I have access to an ia64 machine running RHEL4 below is what I got.
print_backtrace() repeating the first line on ia64. -Will
$ ./stap_testing_200702010930/install/bin/stap -c "uptime" uptime.stp
09:00:48 up 19 days, 22:46, 1 user, load average: 0.09, 0.04, 0.01
NOW IN UPTIME
Pid: 25725, CPU 0, comm: uptime
psr : 0000101008126030 ifs : 8000000000000006 ip : [<a0000001001adf40>]
unat: 0000000000000000 pfs : 0000000000000918 rsc : 0000000000000003
rnat: 0000000000000001 bsps: 0000000000000000 pr : 0000000005555999
ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c0270033f
csd : 0000000000000000 ssd : 0000000000000000
b0 : a0000001001a9580 b6 : a000000100211a20 b7 : a0000001001adf40
f6 : 1003e00000000000043c7 f7 : 1003e6db6db6db6db6db7
f8 : 1003e000000000001da71 f9 : 000000000000000000000
f10 : 000000000000000000000 f11 : 000000000000000000000
0xa0000001001adf40 : uptime_read_proc+0x0/0x200 []
0xa0000001001adf40 : uptime_read_proc+0x0/0x200 []
0xa0000001001a9580 : proc_file_read+0x1a0/0x500 []
0xa000000100123b90 : vfs_read+0x290/0x360 []
0xa0000001001241d0 : sys_read+0x70/0xe0 []
0xa00000010000f4a0 : ia64_ret_from_syscall+0x0/0x20 []
0xa000000000010640
--------
the stack is 0xa0000001001adf40 0xa0000001001a9580 0xa000000100123b90
0xa0000001001241d0 0xa00000010000f4a0 0xa000000000010640
--------
0xa0000001001adf40 : uptime_read_proc+0x0/0x200 []
0xa0000001001a9580 : proc_file_read+0x1a0/0x500 []
0xa000000100123b90 : vfs_read+0x290/0x360 []
0xa0000001001241d0 : sys_read+0x70/0xe0 []
0xa00000010000f4a0 : ia64_ret_from_syscall+0x0/0x20 []
0xa000000000010640
--------