From: Nicholas Miell <nmiell@comcast.net>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Davide Libenzi <davidel@xmailserver.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linux Kernel list <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Paul Mackerras <paulus@samba.org>
Subject: Re: [PATCH/RFC] signal races/bugs, losing TIF_SIGPENDING and other woes
Date: Tue, 05 Jun 2007 16:51:02 -0700 [thread overview]
Message-ID: <1181087462.2788.8.camel@entropy> (raw)
In-Reply-To: <1181028453.31677.127.camel@localhost.localdomain>
On Tue, 2007-06-05 at 17:27 +1000, Benjamin Herrenschmidt wrote:
> On Mon, 2007-06-04 at 23:09 -0700, Nicholas Miell wrote:
> > signalfd() doesn't deliver thread-targeted signals to the wrong
> > threads,
> > does it?
> >
> > Hmm.
> >
> > It looks like reading from a signalfd will give you either
> > process-global signals or the thread-specific signals that are
> > targeted
> > towards the thread that originally created the signalfd (regardless of
> > which thread actually calls read()).
> >
> > Which is weird, to say the least. Definitely needs to be noted in the
> > man page, which doesn't seem to exist yet.
> >
> > Is there a reason why signalfd() doesn't behave like regular signals
> > in
> > this regard?
>
> It's worse than that ... by being able to call dequeue_signal from the
> contxt of another thread than the one dequeuing from.
>
> Ben.
Yes, that's certainly wrong, but that's an implementation issue. I was
more concerned about the design of the API.
Naively, I would expect a reads on a signalfd to return either process
signals or thread signals targeted towards the thread doing the read.
What it actually does (delivering process signals or thread signals
targeted towards the thread that created the signalfd) is weird.
For one, it means you can't create a single signalfd, stick it in an
epoll set, and then wait on that set from multiple threads.
--
Nicholas Miell <nmiell@comcast.net>
next prev parent reply other threads:[~2007-06-05 23:51 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-05 1:25 [PATCH/RFC] signal races/bugs, losing TIF_SIGPENDING and other woes Benjamin Herrenschmidt
2007-06-05 1:44 ` Linus Torvalds
2007-06-05 2:10 ` Benjamin Herrenschmidt
2007-06-05 2:38 ` Davide Libenzi
2007-06-05 3:22 ` Benjamin Herrenschmidt
2007-06-05 6:09 ` Nicholas Miell
2007-06-05 7:27 ` Benjamin Herrenschmidt
2007-06-05 23:51 ` Nicholas Miell [this message]
2007-06-06 0:03 ` Benjamin Herrenschmidt
2007-06-06 0:11 ` Davide Libenzi
2007-06-06 0:15 ` Nicholas Miell
2007-06-06 0:37 ` Davide Libenzi
2007-06-06 0:58 ` signalfd API issues (was Re: [PATCH/RFC] signal races/bugs, losing TIF_SIGPENDING and other woes) Nicholas Miell
2007-06-06 2:50 ` Benjamin Herrenschmidt
2007-06-06 3:29 ` Davide Libenzi
2007-06-06 3:37 ` Linus Torvalds
2007-06-06 4:08 ` Nicholas Miell
2007-06-06 4:18 ` Benjamin Herrenschmidt
2007-06-06 4:35 ` Davide Libenzi
2007-06-06 6:47 ` Benjamin Herrenschmidt
2007-06-06 22:36 ` Davide Libenzi
2007-06-06 3:52 ` Benjamin Herrenschmidt
2007-06-06 12:52 ` Jeff Dike
2007-06-06 22:43 ` Paul Mackerras
2007-06-07 2:20 ` Jeff Dike
2007-06-07 3:29 ` Benjamin Herrenschmidt
2007-06-07 13:59 ` Jeff Dike
2007-06-07 3:21 ` Benjamin Herrenschmidt
2007-06-05 15:52 ` [PATCH/RFC] signal races/bugs, losing TIF_SIGPENDING and other woes Davide Libenzi
2007-06-05 22:15 ` Benjamin Herrenschmidt
2007-06-05 22:50 ` Davide Libenzi
2007-06-05 22:59 ` Benjamin Herrenschmidt
2007-06-06 0:11 ` Davide Libenzi
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=1181087462.2788.8.camel@entropy \
--to=nmiell@comcast.net \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=davidel@xmailserver.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulus@samba.org \
--cc=torvalds@linux-foundation.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