This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: changes to runtime string functions


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]