Re: [PATCH] sched/wait: Fix the signal handling fix

2015-12-14 Thread Peter Zijlstra
On Mon, Dec 14, 2015 at 07:50:04PM +0100, Oleg Nesterov wrote: > > + ret = (*action)(>key, mode); > > And every action() should check signal_pending_state()... > > So why we can't change __wait_on_bit/etc instead and remove all the signal- > pending checks from the callbacks?

Re: [PATCH] sched/wait: Fix the signal handling fix

2015-12-14 Thread Oleg Nesterov
Peter, sorry. I didn't actually read this patch yet (and a lot of previous emails). Will try tomorrow, I am not even sure I understand the problem(s) correctly. But let me ask one question anyway, On 12/13, Peter Zijlstra wrote: > > --- a/kernel/sched/wait.c > +++ b/kernel/sched/wait.c > @@

Re: [PATCH] sched/wait: Fix the signal handling fix

2015-12-14 Thread Oleg Nesterov
Peter, sorry. I didn't actually read this patch yet (and a lot of previous emails). Will try tomorrow, I am not even sure I understand the problem(s) correctly. But let me ask one question anyway, On 12/13, Peter Zijlstra wrote: > > --- a/kernel/sched/wait.c > +++ b/kernel/sched/wait.c > @@

Re: [PATCH] sched/wait: Fix the signal handling fix

2015-12-14 Thread Peter Zijlstra
On Mon, Dec 14, 2015 at 07:50:04PM +0100, Oleg Nesterov wrote: > > + ret = (*action)(>key, mode); > > And every action() should check signal_pending_state()... > > So why we can't change __wait_on_bit/etc instead and remove all the signal- > pending checks from the callbacks?

[PATCH] sched/wait: Fix the signal handling fix

2015-12-13 Thread Peter Zijlstra
Jan Stancek reported that I wrecked things for him by fixing things for Vladimir :/ His report was due to an UNINTERRUPTIBLE wait getting -EINTR, which should not be possible, however my previous patch made this possible by unconditionally checking signal_pending(). We cannot use current->state

[PATCH] sched/wait: Fix the signal handling fix

2015-12-13 Thread Peter Zijlstra
Jan Stancek reported that I wrecked things for him by fixing things for Vladimir :/ His report was due to an UNINTERRUPTIBLE wait getting -EINTR, which should not be possible, however my previous patch made this possible by unconditionally checking signal_pending(). We cannot use current->state