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]

[Bug testsuite/5554] sytemtap.syscall failures on ia64.


------- Additional Comments From mhiramat at redhat dot com  2008-01-08 21:48 -------
I compared those results with strace's output.

============================
 1)    alarm
============================
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={1, 0}}, {it_interval={0,
0}, it_value={0, 0}}) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigsuspend([] <unfinished ...>
--- SIGALRM (Alarm clock) @ a000000000010621 (0) ---
<... rt_sigsuspend resumed> )           = -1 EINTR (Interrupted system call)
rt_sigreturn()                          = ? (mask now [])
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, {it_interval={0,
0}, it_value={0, 0}}) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
nanosleep({0, 1234000}, NULL)           = 0
nanosleep({0, 789}, {6917546615532158977, 2305843009214016656}) = 0
nanosleep({0, 789}, NULL)               = 0
exit_group(0)                           = ?
=============================

>From the output of strace, script's output is correct.
alarm() and pause() are implemented as a setitimer()
and a sigsuspend() respectively on ia64. Thus, this test have to check
setitimer() and sigsuspend() instead of alarm() and pause() on ia64.

============================
 2)    forkwait
============================
clone2(child_stack=0, stack_size=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x20000000002e0090) = 30908
wait4(30908, 0x60000ffffffd3748, WNOHANG, NULL) = 0
exit_group(0)       
=============================

Here, I found a bug; syscalls.stp failed to detect clone systemcall on ia64.
Currently, syscalls.stp(syscall.fork) checks start_stack==0, but on ia64, clone
systemcall is sometimes issued with start_stack=0. And I found that kernel_thread()
calls do_fork() with start_stack=-1 on x86-64.
Thus, we have to check another condition.

============================
 3)    stat
============================
stat("foobar", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
lstat("foobar", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
utimes("foobar", {{1, 0}, {1135641600, 0}}) = 0
utimes("foobar", {{1135690000, 0}, {1135700000, 0}}) = 0
exit_group(0)                           = ?
=============================

On ia64, since utime() is implemented by utimes(), this test have to
check utimes() on ia64.


-- 


http://sourceware.org/bugzilla/show_bug.cgi?id=5554

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


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