Oleg Nesterov <[EMAIL PROTECTED]> writes: > On 04/24, Eric W. Biederman wrote: >> >> I don't know if this is the problem but it certainly needs to be fixed. > > I guess you will re-submit these patches soon. May I suggest you to put > this > >> + spin_lock_irq(&tsk->sighand->siglock); >> + signal_wake_up(tsk, 1); >> + spin_unlock_irq(&tsk->sighand->siglock); > > and this > >> fastcall void recalc_sigpending_tsk(struct task_struct *t) >> { >> if (t->signal->group_stop_count > 0 || >> - (freezing(t)) || >> + (freezing(t)) || __kthread_should_stop(t) || > > into the separate patch? > > Perhaps I am too paranoid, and most probably this change is good, but > still I'm afraid this very subtle change may break things. In that case > it would be easy to revert that only part (for example for the testing > purposes).
It makes sense. I doubt we are going to run into issues when we are killing a thread but we certainly could. Making it easy to test for that scenario would certainly be a good idea. > Consider, > > current->flags |= PF_NOFREEZE; > > while (!kthread_should_stop()) { > > begin_something(); > > // I am a kernel thread, all signals are ignored. > // I don't want to contribute to loadavg, so I am > // waiting for the absoulutely critical event in > // TASK__INTERRUPTIBLE state. > > if (wait_event_interruptible(condition)) > panic("Impossible!"); > > commit_something(); > } Of course if it's impossible it is most likely there won't be a check there so something more subtle will happen. Eric - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/