On 12/21, Linus Torvalds wrote: > > Again, adding Oleg to the cc. And I don't think this is correct,
me too, but I can't reply right now, will do tomorrow, > > In coredump case, where thread_1 faults while thread_2 is in > > TASK_UNINTERRUPTIBLE state, it cannot handle the SIGKILL. Yes, and we have to wait. We can not simply ignore its state. Not to mention, every another_task->state check is racy. > > Thus the process hangs on event. > > The coredump routine freezes until the thread state is > > uninterruptible. > > > > Solution: Continue for coredump, without waiting for uninterruptible > > thread, as it will get killed as soon as it returns from > > uninterruptible state. > > Therefore do not increament thread count for threads with > > TASK_UNINTERRUPTIBLE. > > > > Signed-off-by: Ajeet Yadav <ajeet.yadav...@gmail.com> > > Signed-off-by: Vaibhav Shinde <v.bhav.shi...@gmail.com> > > --- > > fs/coredump.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletions(-) > > > > diff --git a/fs/coredump.c b/fs/coredump.c > > index 447b02c..54b0664 100644 > > --- a/fs/coredump.c > > +++ b/fs/coredump.c > > @@ -281,7 +281,8 @@ static int zap_process(struct task_struct *start, > > int exit_code) > > if (t != current && t->mm) { > > sigaddset(&t->pending.signal, SIGKILL); > > signal_wake_up(t, 1); > > - nr++; > > + if(!(t->state & TASK_UNINTERRUPTIBLE)) > > + nr++; > > } > > } while_each_thread(start, t); > > > > -- > > 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/