lkml.org 
[lkml]   [2007]   [May]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 1/7] Freezer: Read PF_BORROWED_MM in a nonracy way
On 05/12, Rafael J. Wysocki wrote:
>
> ... user space tasks that call deamonize() can also be frozen prematurely.
> We didn't take this possibility into consideration before, which was obviously
> wrong.

No, no, sorry for the confusion. User space tasks never call deamonize().

Kernel threads call daemonize, because when we are doing kernel_thread()
on behalf of user-space task, the new kernel thread (child) shares its
->mm with the caller (parent). So it is considered as "is_user_space()"
until it does daemonize().

Definitely, is_user_space() should have another name.

When a user space task exits, it does exit_mm() and becomes "a kernel thread"
from the freezer POV. In its current from, freezer can do nothing with this.
The exiting task won't call try_to_freeze() after that, so try_to_freeze_tasks()
will wait until it dissapears (actually, until it calls exit_notify(), note
the ->exit_state check in freezeable()).

I do not think we can improve things if exit_mm() clears TIF_FREEZING.
We should clear TIF_FREEZING when we set PF_NOFREEZE, I think. This was
discussed before iirc, but I forgot the result.

Oleg.

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

\
 
 \ /
  Last update: 2007-05-12 16:21    [W:0.089 / U:0.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site