Re: [PATCH 4.4 040/103] pid_ns: Sleep in TASK_INTERRUPTIBLE in zap_pid_ns_processes

From: Eric W. Biederman
Date: Thu Jun 01 2017 - 09:51:29 EST


Ben Hutchings <ben.hutchings@xxxxxxxxxxxxxxx> writes:

> On Tue, 2017-05-23 at 22:09 +0200, Greg Kroah-Hartman wrote:
>> 4.4-stable review patch. If anyone has any objections, please let me know.
>>
>> ------------------
>>
>> From: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
>>
>> commit b9a985db98961ae1ba0be169f19df1c567e4ffe0 upstream.
>>
>> The code can potentially sleep for an indefinite amount of time in
>> zap_pid_ns_processes triggering the hung task timeout, and increasing
>> the system average. This is undesirable. Sleep with a task state of
>> TASK_INTERRUPTIBLE instead of TASK_UNINTERRUPTIBLE to remove these
>> undesirable side effects.
> [...]
>
> This seems to rely on the task not actually being signallable due to the
> PF_EXITING flag. Using TASK_IDLE would be clearer (though less
> backport-able).

Point taken. And imporatantly TASK_IDLE also avoids the hung_task
check.

Right now backporting and well understood simplicity is the primary
goal.

I have a patch in the queue for 4.13 that will remove this wait all
together, and just not allow reaping the zombie until the appropriate
conditions are met. That seems to be the better long term approach, as
it avoids blocking in such a weird way in a weird location all together.

Eric