This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug testsuite/5554] sytemtap.syscall failures on ia64.
- From: "mhiramat at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 8 Jan 2008 21:48:36 -0000
- Subject: [Bug testsuite/5554] sytemtap.syscall failures on ia64.
- References: <20080108200751.5554.mhiramat@redhat.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- 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.