public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Davide Libenzi <davidel@xmailserver.org>,
	Nicholas Miell <nmiell@comcast.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Fix signalfd interaction with thread-private signals
Date: Fri, 22 Jun 2007 09:30:04 +1000	[thread overview]
Message-ID: <1182468604.24740.22.camel@localhost.localdomain> (raw)
In-Reply-To: <20070621185856.GA153@tv-sign.ru>

On Thu, 2007-06-21 at 22:58 +0400, Oleg Nesterov wrote:
> 
> > No "stealing". No signalfd, no *nothing*. Just normal signal
> behaviour.
> 
> _Another_ thread could steal SIGSEGV via read(signalfd) without Ben's patch.
> This is what Ben and Davide are worried about. I think we should not worry,
> we have the same situation if this "another" thread does
> 
>         for (;;)
>                 signal(SIGSEGV, SIG_IGN);
> 
> do_sigaction() does rm_from_queue_full().

Yeah well... I wanted to have the least surprise path... that is,
without my patch, signalfd will "sometimes" steal the SIGSEGV depending
on who races to the lock first, thus causing the target thread to
re-execute the faulting instruction and taking another SIGSEGV, and
sometimes not. It's bad from both the faulting thread point of view and
the signalfd use who gets signals "sometimes" without any guarantee.

I like the current code that at least implement a precise semantic for
all thread local signals -> they are only ever delivered to that thread,
period. If you really want to do funky things from outside, you can
still do ptrace ;-)

Ben.



  reply	other threads:[~2007-06-21 23:30 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-17  3:33 And now for something _totally_ different: Linux v2.6.22-rc5 Linus Torvalds
2007-06-17  7:15 ` Nicholas Miell
2007-06-17 17:01   ` Davide Libenzi
2007-06-17 19:26     ` Nicholas Miell
2007-06-17 23:49       ` Davide Libenzi
2007-06-18  0:08         ` Nicholas Miell
2007-06-18  0:20           ` Davide Libenzi
2007-06-18  0:43             ` Benjamin Herrenschmidt
2007-06-18  0:47               ` Davide Libenzi
2007-06-18 17:14               ` Linus Torvalds
2007-06-19  9:14                 ` Fix signalfd interaction with thread-private signals Oleg Nesterov
2007-06-19 12:09                   ` Benjamin Herrenschmidt
2007-06-19 14:06                     ` Oleg Nesterov
2007-06-19 19:53                       ` Davide Libenzi
2007-06-19 20:08                         ` Oleg Nesterov
2007-06-19 23:16                           ` Davide Libenzi
2007-06-19 23:24                       ` Benjamin Herrenschmidt
2007-06-20 11:14                         ` Oleg Nesterov
2007-06-20 17:38                           ` Linus Torvalds
2007-06-21  8:25                             ` Oleg Nesterov
2007-06-21 18:01                               ` Linus Torvalds
2007-06-21 18:23                                 ` Oleg Nesterov
2007-06-21 18:35                                   ` Linus Torvalds
2007-06-21 18:58                                     ` Oleg Nesterov
2007-06-21 23:30                                       ` Benjamin Herrenschmidt [this message]
2007-06-21 23:46                                         ` Linus Torvalds
2007-06-22  8:40                                         ` Oleg Nesterov
2007-06-22 11:41                                           ` Benjamin Herrenschmidt
2007-06-22 16:04                                             ` Oleg Nesterov
2007-06-22 22:33                                               ` Benjamin Herrenschmidt
2007-06-22 22:47                                                 ` Linus Torvalds
2007-06-22 23:00                                                   ` Davide Libenzi
2007-06-22 23:16                                                   ` Benjamin Herrenschmidt
2007-06-22 23:19                                                     ` Benjamin Herrenschmidt
2007-06-22 23:42                                                       ` Nicholas Miell
2007-06-23  0:12                                                         ` Davide Libenzi
2007-06-23  1:15                                                           ` Nicholas Miell
2007-06-23  6:05                                                           ` Benjamin Herrenschmidt
2007-06-23 22:54                                                             ` Nicholas Miell
2007-06-23 16:35                                                   ` Oleg Nesterov
2007-06-19 19:43                   ` Davide Libenzi
2007-06-19 19:59                     ` Oleg Nesterov
2007-06-19 23:49                   ` Davide Libenzi
2007-06-20  1:25                     ` Benjamin Herrenschmidt
2007-06-20  2:15                       ` Davide Libenzi
2007-06-20  3:46                         ` Benjamin Herrenschmidt
2007-06-20 15:54                           ` Davide Libenzi
2007-06-18 13:42         ` And now for something _totally_ different: Linux v2.6.22-rc5 Oleg Nesterov
2007-06-19 21:37 ` Mariusz Kozlowski
2007-06-19 21:48   ` Linus Torvalds
2007-06-19 22:31     ` Mariusz Kozlowski

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=1182468604.24740.22.camel@localhost.localdomain \
    --to=benh@kernel.crashing.org \
    --cc=davidel@xmailserver.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nmiell@comcast.net \
    --cc=oleg@tv-sign.ru \
    --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