Re: [PATCH] kthread: Enhance kthread_stop to abort interruptible sleeps

From: Oleg Nesterov
Date: Tue Apr 24 2007 - 11:07:00 EST


On 04/24, Eric W. Biederman wrote:
>
> The NULL vfork_done is really weird as exec is the only thing that sets
> vfork_done to NULL.

Hm, mm_release() clears ->vfork_done before complete().

mm_release:

struct completion *vfork_done = tsk->vfork_done;

if (vfork_done) {
tsk->vfork_done = NULL;
complete(vfork_done);
}


kthread_stop:

set_tsk_thread_flag(tsk, TIF_KTHREAD_STOP);
signal_wake_up(tsk, 1);

// tsk exits, sets ->vfork_done == NULL

wait_for_completion(tsk->vfork_done);


Probably Rafael worried about this, but I misunderstood him...

Oleg.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/