mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Woodhouse <dwmw2@infradead.org>
To: Matthew Grant <grantma@anathoth.gen.nz>
Cc: linux-kernel@vger.kernel.org
Subject: Re: PROBLEM:  rt_sigsuspend() does not return EINTR on 2.6.16-rc2+
Date: Sun, 05 Mar 2006 11:24:22 +0000	[thread overview]
Message-ID: <1141557862.3764.47.camel@pmac.infradead.org> (raw)
In-Reply-To: <1141521960.7628.9.camel@localhost.localdomain>

On Sun, 2006-03-05 at 14:26 +1300, Matthew Grant wrote:
> Problem is that new sys_rt_sigsuspend in kernel/signal.c in 2.6.16-rc2+
> does not return EINTR.

It does for me -- try the trivial test case at
http://david.woodhou.se/sigsusptest.c

If you strace that under old and new kernels you'll see a difference in
the strace output, but it should be entirely cosmetic. The old code
would incestuously call do_signal() inside sys_rt_sigsuspend(), and
would never need to use the mechanism we have for restarting system
calls. Either it would know it delivered a signal and it would return
-EINTR, or it would know that it _didn't_, and it would loop for itself.
Now it behaves like all the other restartable syscalls, and ptrace will
actually see the -ERESTARTNOHAND return code which later gets converted
by the signal code either to -EINTR or to an actual restart, as
appropriate.

In short, I think what you've picked up on in the strace output is
entirely cosmetic, and shouldn't affect the behaviour of the program in
any way. In each case, it comes back from the signal and goes
immediately into gettimeofday() and then poll() -- it _has_ come out of
the sigsuspend(). You then find that poll() gives different results in
each case, and I'd be inclined to suspect that the _real_ change in
behaviour goes from that point.

> I think David woodhouse may be responsible for this....

I read lkml sporadically; usually better to Cc me when I'm to blame :)

-- 
dwmw2


  reply	other threads:[~2006-03-05 11:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-05  1:26 Matthew Grant
2006-03-05 11:24 ` David Woodhouse [this message]
2006-03-06  8:28   ` Matthew Grant
2006-03-06 10:45     ` Andrew Morton
2006-03-06 11:25       ` Paul Mackerras
2006-03-06 11:30         ` David Woodhouse
2006-03-06 11:31     ` David Woodhouse

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=1141557862.3764.47.camel@pmac.infradead.org \
    --to=dwmw2@infradead.org \
    --cc=grantma@anathoth.gen.nz \
    --cc=linux-kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®