Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1342955
| From | Peter Zijlstra <peterz@infradead.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] signals: work around random wakeups in sigsuspend() |
| Date | 2016-02-25 09:20 +0100 |
| Message-ID | <r5Zjs-XU-17@gated-at.bofh.it> (permalink) |
| References | <qURIG-68y-83@gated-at.bofh.it> <qUUGu-8W-17@gated-at.bofh.it> <r5UD8-6ag-31@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Thu, Feb 25, 2016 at 03:18:52AM +0000, Al Viro wrote:
> On Mon, Jan 25, 2016 at 08:09:15PM +0100, Oleg Nesterov wrote:
> > On 01/25, Sasha Levin wrote:
> > >
> > > A random wakeup can get us out of sigsuspend() without TIF_SIGPENDING
> > > being set.
> >
> > and TIF_RESTORE_SIGMASK is just wrong in this case. I'd say this is the
> > bugfix, not work-around ;)
> >
> > > Avoid that by making sure we were signaled, like sys_pause() does.
> > >
> > > Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
> >
> > Acked-by: Oleg Nesterov <oleg@redhat.com>
> >
> > Thanks Sasha.
>
> Out of curiousity - where did that stray wakeup come from? PTRACE_KILL
> used to trigger those, but that got fixed. How does one trigger that
> kind of bugs on the current kernels?
Its a regular TASK_INTERRUPTIBLE sleep, for those spurious wakeups are
not a bug, they're pretty fundamentally allowed.
See: lkml.kernel.org/r/CA+55aFwHkOo+YGWKYROmce1-H_uG3KfEUmCkJUerTj=ojY2H6Q@mail.gmail.com
But they became a lot more common because we explicitly used the delayed
wakeup pattern described there with wake_q. See commits:
7675104990ed ("sched: Implement lockless wake-queues")
1d0dcb3ad9d3 ("futex: Implement lockless wakeups")
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: [PATCH] signals: work around random wakeups in sigsuspend() Al Viro <viro@ZenIV.linux.org.uk> - 2016-02-25 04:20 +0100
Re: [PATCH] signals: work around random wakeups in sigsuspend() Peter Zijlstra <peterz@infradead.org> - 2016-02-25 09:20 +0100
Re: [PATCH] signals: work around random wakeups in sigsuspend() Al Viro <viro@ZenIV.linux.org.uk> - 2016-02-25 18:40 +0100
csiph-web