Re: [PATCH] livepatch: klp_send_signal should treat PF_IO_WORKER like PF_KTHREAD
From: Miroslav Benes <mbenes@suse.cz>
Date: 2021-03-25 09:26:56
Also in:
lkml
On Thu, 25 Mar 2021, Dong Kai wrote:
commit 15b2219facad ("kernel: freezer should treat PF_IO_WORKER like
PF_KTHREAD for freezing") is to fix the freezeing issue of IO threads
by making the freezer not send them fake signals.
Here live patching consistency model call klp_send_signals to wake up
all tasks by send fake signal to all non-kthread which only check the
PF_KTHREAD flag, so it still send signal to io threads which may lead to
freezeing issue of io threads.I suppose this could happen, but it will also affect the live patching transition if the io threads do not react to signals. Are you able to reproduce it easily? I mean, is there a testcase I could use to take a closer look?
Here we take the same fix action by treating PF_IO_WORKERS as PF_KTHREAD within klp_send_signal function.
Yes, this sounds reasonable. Miroslav
quoted hunk ↗ jump to hunk
Signed-off-by: Dong Kai <redacted> --- note: the io threads freeze issue links: [1] https://lore.kernel.org/io-uring/YEgnIp43%2F6kFn8GL@kevinlocke.name/ (local) [2] https://lore.kernel.org/io-uring/d7350ce7-17dc-75d7-611b-27ebf2cb539b@kernel.dk/ (local) kernel/livepatch/transition.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c index f6310f848f34..0e1c35c8f4b4 100644 --- a/kernel/livepatch/transition.c +++ b/kernel/livepatch/transition.c@@ -358,7 +358,7 @@ static void klp_send_signals(void) * Meanwhile the task could migrate itself and the action * would be meaningless. It is not serious though. */ - if (task->flags & PF_KTHREAD) { + if (task->flags & (PF_KTHREAD | PF_IO_WORKER)) { /* * Wake up a kthread which sleeps interruptedly and * still has not been migrated.