Messages in this thread | | | From | "Eric W. Biederman" <> | Date | Sat, 27 May 2023 20:41:29 -0500 | Subject | Re: [PATCH 3/3] fork, vhost: Use CLONE_THREAD to fix freezer/ps regression |
| |
Mike Christie <michael.christie@oracle.com> writes:
> On 5/23/23 7:15 AM, Oleg Nesterov wrote: >> >> Now the main question. Whatever we do, SIGKILL/SIGSTOP/etc can come right >> before we call work->fn(). Is it "safe" to run this callback with >> signal_pending() or fatal_signal_pending() ? > > The questions before this one I'll leave for the core vhost devs since > they know best.
Let me ask a clarifying question:
Is it only the call to schedule() in vhost_worker that you are worried about not sleeping if signal_pending() or fatal_signal_pending()?
Is there concern that the worker functions aka "work->fn()" will also have killable or interruptible sleeps that also will misbehave.
We can handle schedule() in vhost_worker without problem.
If a worker function has interruptible or killable sleeps that will turn into busy waits or worse not sleeping long enough that seems like a problem. There is no way to guarantee that the outer loop of vhost_worker will protect the worker functions from signal_pending() or fatal_signal_pending() becoming true.
Eric
| |