From: BlaisorBlade <blaisorblade_spam@yahoo.it>
To: Jeff Dike <jdike@addtoit.com>
Cc: user-mode-linux-devel@lists.sourceforge.net,
Joe Marzot <gmarzot@nortelnetworks.com>
Subject: Re: [uml-devel] handle_trap - failed to wait at end of syscall
Date: Tue, 14 Sep 2004 12:41:20 +0200 [thread overview]
Message-ID: <200409141241.21480.blaisorblade_spam@yahoo.it> (raw)
In-Reply-To: <200409132214.i8DMEwL7003829@ccure.user-mode-linux.org>
On Tuesday 14 September 2004 00:14, Jeff Dike wrote:
> blaisorblade_spam@yahoo.it said:
> > However, it is not possible nor desirable to do this in CATCH_EINTR -
> > retry if errno == EINTR is a general rule valid in every Unix program
> > ever, while this is very specific to this call.
> >
> > do {
> > CATCH_EINTR(err = waitpid(pid, &status, WUNTRACED));
> > } while (WIFSTOPPED(status) && (STOPSIG(status) == SIGHUP))
>
> I'd still like to understand exactly what's going on here. UML interprets
> a SIGHUP to itself as a "shut down now" command, while it should not see
> SIGHUP from a terminal going away.
>
> Figuring out why it is should point us at the correct fix.
Well, I've a situation where I consistently get SIGSEGV instead of SIGHUP
here, but only on 2.6 host. The scenario is to do "echo 0 > /proc/sysemu".
You can test that with 2.6.9-rc2 or with 2.6.7-bb6 (both include /proc/sysemu
support).
The problem (at least in my scenario) is that the signal in 2.4 is delivered
only to the kernel thread, while on 2.6 (for some reason) it is delivered
first to the userspace thread. You too mentioned 2.6 signal delivery changes
as the reason for some fixes.
So, Joe, since you can get this panic consistently, could you try reproducing
the scenario on a 2.4 host kernel? I guess you shouldn't be able, but I could
be wrong. Also, a 2.4 RH kernel does not qualify as a true 2.4 host kernel,
since it contains some NPTL code - if you can, try just a 2.4 vanilla + SKAS.
About the fix, most signals get delivered to all threads, so we can probably
safely ignore them when received through waitpid(). But Ulrich Drepper says
here:
http://people.redhat.com/drepper/posix-signal-model.xml
that SIGSEGV should be delivered only to the generating thread; the document
lists changes to be done to Linux, so maybe this is implemented in 2.6 and
not in 2.4. However, OTOH, he also says that signal handlers are
process-wide, so we should be safe anyway. And anyway, the code works
perfectly on 2.4 hosts.
--
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729
-------------------------------------------------------
This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
Project Admins to receive an Apple iPod Mini FREE for your judgement on
who ports your project to Linux PPC the best. Sponsored by IBM.
Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
next prev parent reply other threads:[~2004-09-14 10:44 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-11 15:32 [uml-devel] debugging UML cores Joe Marzot
2004-08-12 5:41 ` Jeff Dike
2004-08-12 15:21 ` Joe Marzot
2004-08-12 16:56 ` Jeff Dike
2004-08-12 16:16 ` Joe Marzot
2004-08-12 15:36 ` Joe Marzot
2004-08-12 15:47 ` Joe Marzot
2004-08-13 15:46 ` [uml-devel] handle_trap - failed to wait at end of syscall [was Re: [uml-devel] debugging UML cores] Joe Marzot
2004-08-13 18:01 ` Joe Marzot
2004-08-13 21:47 ` Jeff Dike
2004-08-16 17:47 ` [uml-devel] Re: handle_trap - failed to wait at end of syscall [was Re: [uml- devel] " Joe Marzot
2004-08-16 19:25 ` Joe Marzot
2004-08-16 19:53 ` D. Bahi
2004-08-17 5:26 ` Jeff Dike
2004-08-20 11:46 ` handle_trap - failed to wait at end of syscall [was Re: [uml-devel] " BlaisorBlade
2004-09-13 15:39 ` [uml-devel] handle_trap - failed to wait at end of syscall Joe Marzot
2004-09-13 19:39 ` BlaisorBlade
2004-09-13 22:14 ` Jeff Dike
2004-09-14 10:41 ` BlaisorBlade [this message]
2004-09-14 16:09 ` Joe Marzot
2004-09-14 21:23 ` Jeff Dike
2004-09-15 5:00 ` Richard Potter
2004-09-15 19:35 ` Joe Marzot
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=200409141241.21480.blaisorblade_spam@yahoo.it \
--to=blaisorblade_spam@yahoo.it \
--cc=gmarzot@nortelnetworks.com \
--cc=jdike@addtoit.com \
--cc=user-mode-linux-devel@lists.sourceforge.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox