Re: [PATCH 2/2] kthread: Drop warning on cpumask allocation failure in kthread_affine_node()
From: Bradley Morgan
Date: Mon Sep 14 2026 - 12:53:13 EST
On 14 September 2026 13:09:41 BST, Quchaosheng <quchaosheng000406@xxxxxxx>
wrote:
>kthread_affine_node() warns when zalloc_cpumask_var() fails:
>
> if (!zalloc_cpumask_var(&affinity, GFP_KERNEL)) {
> WARN_ON_ONCE(1);
> return;
> }
>
>The allocation uses GFP_KERNEL, so it can fail under memory pressure or
>fault injection. A failed allocation is a recoverable condition and not a
>kernel bug, so the warning is noise. syzbot reports it for a WireGuard
>NAPI thread:
>
> WARNING: kernel/kthread.c:359 at kthread_affine_node+0x200/0x2e8
> CPU: 0 PID: 5207 Comm: napi/wg2-0
> Call Trace:
> alloc_cpumask_var_node+0xfc/0x138
> zalloc_cpumask_var
> kthread_affine_node+0x148/0x2e8
> kthread+0x29c/0x3d4
> ret_from_fork+0x10/0x20
Interesting.
>
>The other two callers of zalloc_cpumask_var() in this file, in the kthread
>preferred affinity and kthreads_online_cpu() paths, return -ENOMEM without
>a warning. kthread_affine_node() returns void, so it cannot report the
>error either, and it only skips the affinity setup for this thread.
>Return
>early without warning, matching those callers.
Makes sense.
>
>Reported-by: syzbot+37ca7ae3e98cb65c3209@xxxxxxxxxxxxxxxxxxxxxxxxx
>Closes: https://syzkaller.appspot.com/bug?extid=37ca7ae3e98cb65c3209
>Signed-off-by: Quchaosheng <quchaosheng000406@xxxxxxx>
>---
> kernel/kthread.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
>diff --git a/kernel/kthread.c b/kernel/kthread.c
>index a3f95c904..f735a74b6 100644
>--- a/kernel/kthread.c
>+++ b/kernel/kthread.c
>@@ -355,10 +355,8 @@ static void kthread_affine_node(void)
> if (WARN_ON_ONCE(kthread_is_per_cpu(current)))
> return;
>
>- if (!zalloc_cpumask_var(&affinity, GFP_KERNEL)) {
>- WARN_ON_ONCE(1);
>+ if (!zalloc_cpumask_var(&affinity, GFP_KERNEL))
> return;
>- }
Uhh, I'm unsure about this.
The warn may be intended?
Perhaps you could warn -> info?
Because people may prefer to know if it's broken.
I'm not comfortable adding a tag until the maintainers have a input
>
> mutex_lock(&kthread_affinity_lock);
> WARN_ON_ONCE(!list_empty(&kthread->affinity_node));
>
>
>
--- Thanks!
https://lore.kernel.org/all/EE579805-42F2-4C58-B752-F28779EEB717@xxxxxxxxx/