Messages in this thread | | | Date | Thu, 3 Nov 2011 16:10:33 +0100 | From | Oleg Nesterov <> | Subject | Re: [RFC PATCH] freezer: revert 27920651fe "PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too" |
| |
On 11/03, Rafael J. Wysocki wrote: > > On Wednesday, November 02, 2011, Oleg Nesterov wrote: > > > > Rafael, could you remind why freezer_do_not_count/freezer_count check > > ->mm != NULL ? > > You're asking difficult questions. ;-)
I am trying ;)
> The intention was to prevent PF_FREEZER_SKIP from having any effect on > kernel threads, IIRC. Anyway, there are only two legitimate users of it > (vfork and apm_ioctl) and in both cases the task in question is user space.
Actually CLONE_VFORK is used by call_usermodehelper() paths but this case is fine. The caller is the PF_NOFREEZE workqueue thread.
> > The comment says "However, we don't want kernel threads to be frozen", > > but it is not clear anyway. A kernel thread simply shouldn't use this > > interface if it doesn't want to freeze. > > > > And in any case, PF_KTHREAD looks better if we really need to filter > > out the kernel threads. > > PF_FREEZER_SKIP was introduced specifically with vfork in mind and I'm not > sure if it's a good idea to re-use it for something else (at least not for > something entirely obvious).
Indeed! So why do we check ->mm != NULL?
We can remove this check, right now it doesn't matter. And we are trying to avoid the new users of this interface.
Oleg.
| |