On Wed, 1 Nov 2017, Oleg Nesterov wrote: > On 11/01, Petr Mladek wrote: > > > > On Tue 2017-10-31 12:48:52, Miroslav Benes wrote: > > > + if (task->flags & PF_KTHREAD) { > > > + /* > > > + * Wake up a kthread which still has not been migrated. > > > + */ > > > + wake_up_process(task); > > > > I have just noticed that freezer used wake_up_state(p, TASK_INTERRUPTIBLE); > > IMHO, we should do so as well. > > I won't argue, but... > > > wake_up_process() wakes also tasks in TASK_UNINTERRUPTIBLE state. > > These might not be ready for an unexpected wakeup. For example, > > see concat_dev_erase() in drivers/mtd/mtdcontact.c. > > I'd say that concat_dev_erase() should be fixed, any code should be ready > for spurious wakeup. I agree. > Note also that wake_up_state(TASK_INTERRUPTIBLE) won't wakeup the TASK_IDLE > kthreads, and most of the kthreads which use TASK_INTERRUPTIBLE should use > TASK_IDLE today, because in most cases TASK_INTERRUPTIBLE was used to not > contribute to loadavg. Yes. Unfortunately, we have TASK_IDLE for more than two years now and nothing much has happened yet. TASK_IDLE is still used sporadically. I'd like to be on the safe side with livepatch and given that TASK_INTERRUPTIBLE loops should be prepared for spurious wakeups by definition, I think it is better to have wake_up_state(TASK_INTERRUPTIBLE) there. At least till all "concat_dev_erase" beauties are fixed (sigh). Miroslav -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html