|
@@ -64,6 +64,12 @@ static int try_to_freeze_tasks(bool sig_only)
|
|
|
* perturb a task in TASK_STOPPED or TASK_TRACED.
|
|
|
* It is "frozen enough". If the task does wake
|
|
|
* up, it will immediately call try_to_freeze.
|
|
|
+ *
|
|
|
+ * Because freeze_task() goes through p's
|
|
|
+ * scheduler lock after setting TIF_FREEZE, it's
|
|
|
+ * guaranteed that either we see TASK_RUNNING or
|
|
|
+ * try_to_stop() after schedule() in ptrace/signal
|
|
|
+ * stop sees TIF_FREEZE.
|
|
|
*/
|
|
|
if (!task_is_stopped_or_traced(p) &&
|
|
|
!freezer_should_skip(p))
|