Re: [PATCH 2/3] drm/scheduler: Don't call wait_event_killable for signaled process.

From: Andrey Grodzovsky
Date: Wed Apr 25 2018 - 10:21:59 EST




On 04/25/2018 09:55 AM, Oleg Nesterov wrote:
On 04/24, Eric W. Biederman wrote:
Let me respectfully suggest that the wait_event_killable on that code
path is wrong.
I tend to agree even if I don't know this code.

But if it can be called from f_op->release() then any usage of "current" or
signals looks suspicious. Simply because "current" can be completely irrelevant
task which does the last fput(), say, cat /proc/pid/fdinfo/... or even a kernel
thread.

Oleg.

So what you say is that switching to current->PF_EXITING as indication of a reason why I am
here (drm_sched_entity_fini) is also a bad idea, but we still want to be able to exit immediately
and not wait for GPU jobs completion when the reason for reaching this code is because of KILL
signal to the user process who opened the device file. With termination from fput  it seems impossible...
But thinking more about it, any task still referencing this file and putting down the reference and is not
exiting due to SIGKILL will just have to go through the slow path - wait for jobs completion on GPU (with some TO).

Andrey