> Subject: Re: [PATCH 1/1] PM: Thaws refrigerated and to be exited kernel > threads > > Hi! > > > Kicks out a frozen thread from the refrigerator when an active thread has > > invoked kthread_stop on the frozen thread. > > > > Signed-off-by: Romit Dasgupta <romit@xxxxxx> > > --- > > > > diff --git a/kernel/freezer.c b/kernel/freezer.c > > index bd1d42b..c28dbe8 100644 > > --- a/kernel/freezer.c > > +++ b/kernel/freezer.c > > @@ -9,6 +9,7 @@ > > #include <linux/module.h> > > #include <linux/syscalls.h> > > #include <linux/freezer.h> > > +#include <linux/kthread.h> > > > > /* > > * freezing is complete, mark current process as frozen > > @@ -49,7 +50,7 @@ void refrigerator(void) > > > > for (;;) { > > set_current_state(TASK_UNINTERRUPTIBLE); > > - if (!frozen(current)) > > + if (!frozen(current) || (!current->mm && kthread_should_stop())) > > break; > > schedule(); > > Well, what if the thread does some processing before stopping? That > would break refrigerator assumptions... The suspend thread will block until the 'to be stopped' thread clears up. That is what any call to kthread_stop would boil down to. The target thread would anyway be out of the refrigerator so I am not sure what assumption you mean here. Eventually, the target thread would clear up and wake up the suspend thread and then things would go on as usual. _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm