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: Nightly test result of systemtap in ppc64


Hien Nguyen wrote:

Frank Ch. Eigler wrote:

Hien Nguyen <hien@us.ibm.com> writes:



FAIL: /root/stap_testing_200604241559/src/testsuite/buildok/syscall.stp
This is the output of gcc for the test about.
{standard input}: Assembler messages:
{standard input}:690082: Error: operand out of range
(0x0000000000008000 is not between 0xffffffffffff8000 and
0x0000000000007fff)
[...]


Could you run this test by hand, with "stap -k ...", then editing TMPDIR/Makefile to add "CFLAGS+=-save-temps", rerunning the kbuild make command, and finally locating the instructions the assembler is complaining about?

If they're branches, this could be related to my recent addition of
"-freorder-blocks" to the probe object CFLAGS.

- FChE


The offended code look like these
ld 28,.LC29584-.LCTOC1(30)
[...]
ld 0,.LC29595-.LCTOC1(30)
etc...

Does not look like branches. I tried it without -freorder-blocks with same result. I am going to chase down this problem.

If I commented out the following out of the ppc64/syscalls.stp the buildok/syscalls.stp built just fine.

probe syscall.compat_sys_setsockopt = kernel.function("compat_sys_setsockopt") {
name = "compat_sys_setsockopt"
fd = $fd
level = $level
level_str = _sockopt_level_str($level)
optname = $optname
optname_str = _sockopt_optname_str($optname)
optval_uaddr = $optval
optlen = $optlen
argstr = sprintf("%d, %s, %s, [0x%p], %d", $fd, level_str,
optname_str, optval_uaddr, $optlen)
}
probe syscall.compat_sys_setsockopt.return =
kernel.function("compat_sys_setsockopt").return {
name = "compat_sys_setsockopt"
retstr = returnstr(1)
}


However, I cound not find anything wrong with it. So I copied this snippet to another file and renamed the allias to mysyscall and modified the syscals.stp

#! stap -up4

probe mysyscall.*, mysyscall.*.return {
if (retstr != "")
printf("%s\n", retstr)
else
printf("%s: %s (%s) = ", execname(), name, argstr)
}
and it built just fine.

I now have two files under tapset/ppc64 syscall.stp and mytest.stp (mytest.stp only contains the probe alias for compat_sys_setsockopt) . Modified the syscalls.stp test again to include both syscall and mysyscall aliases, stap build failed again with the same error reported above.




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