From: Erik de Castro Lopo <nospam@mega-nerd.com>
To: ultralinux@vger.kernel.org
Subject: SMP Sparc64 : bug in clone?
Date: Sat, 23 Mar 2002 02:15:45 +0000 [thread overview]
Message-ID: <marc-linux-ultrasparc-101684978515837@msgid-missing> (raw)
Hi all,
The clone system call on Sparc64 Linux seems to be producing drastically
different results to those obtain in x86 linux. On Sparc64 it seems as if
the child process never runs (tried on uni-processor 2.4.18 and SMP
2.4.19-pre4 with the same results).
My test program can be found here:
https://mega-nerd.net/clone_test.c
On Sparc64 I get:
root@razor > gcc -Wall clone_test.c -o clone_test
root@razor > ./clone_test
parent running
parent about to exit
root@razor > sparc64-linux-gcc -Wall clone_test.c -o clone_test
root@razor > ./clone_test
parent running
parent about to exit
root@razor >
On x86 linux I get this:
erikd@coltrane > ./clone_test
parent running
child running
child about to exit
parent about to exit
erikd@coltrane >
The assember output of sparc64-linux-gcc seems to be OK:
main:
!#PROLOGUE# 0
save %sp, -112, %sp
!#PROLOGUE# 1
st %i0, [%fp+68]
st %i1, [%fp+72]
sethi %hi(.LLC2), %o0
or %o0, %lo(.LLC2), %o0
call printf, 0
nop
sethi %hi(child), %o0
or %o0, %lo(child), %o0
sethi %hi(stack+32768), %o1
or %o1, %lo(stack+32768), %o1
mov 20, %o2
mov 0, %o3
call clone, 0
nop
Strace output looks like this:
munmap(0x7001c000, 9341) = 0
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 64), ...}) = 0
ioctl(1, 0x40245408, {B9600 opost isig icanon echo ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7001a000
write(1, "parent running\n", 15parent running
) = 15
clone(child_stack=0x29cc8, flags=0x14) = 166
--- SIGCHLD (Child exited) ---
wait4(166, [WIFSIGNALED(s) && WTERMSIG(s) = SIGSEGV], WUNTRACED, NULL) = 166
write(1, "parent about to exit\n", 21parent about to exit
) = 21
munmap(0x7001a000, 8192) = 0
exit(0) = ?
which seems to imply that the child exits immediately. If I do strace -f I get
this:
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7001a000
write(1, "parent running\n", 15parent running
) = 15
clone(child_stack=0x61cc8, flags=0x14) = 179
[pid 179] --- SIGSEGV (Segmentation fault) ---
--- SIGCHLD (Child exited) ---
wait4(179, <unfinished ...>
and then strace hangs. I think this is actually a problem with strace rather than
a result of what my program is trying to do.
For the moment I will believe that first strace output which states that the child
process segfaults immediately after clone. Now I gotta figure out why.
Anybody got any clues on how to progress this?
Cheers,
Erik
--
+-----------------------------------------------------------+
Erik de Castro Lopo nospam@mega-nerd.com (Yes it's valid)
+-----------------------------------------------------------+
When aiming for the common denominator, be prepared for the
occasional division by zero.
next reply other threads:[~2002-03-23 2:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-23 2:15 Erik de Castro Lopo [this message]
2002-03-23 3:33 ` SMP Sparc64 : bug in clone? Erik de Castro Lopo
2002-03-25 7:53 ` Erik de Castro Lopo
2002-03-25 8:12 ` David S. Miller
2002-03-25 8:35 ` Erik de Castro Lopo
2002-03-25 8:36 ` David S. Miller
2002-04-29 20:14 ` David S. Miller
2002-04-29 20:17 ` Erik de Castro Lopo
2002-05-04 23:08 ` Erik de Castro Lopo
2002-05-06 14:25 ` Noah Beck
2002-05-06 21:36 ` Erik de Castro Lopo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-ultrasparc-101684978515837@msgid-missing \
--to=nospam@mega-nerd.com \
--cc=ultralinux@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.