[PATCH] KEYS: dispatch key_gc_work to system_wq.
Hillf Danton
hdanton at sina.com
Mon Oct 26 09:56:05 UTC 2026
On Mon, 26 Oct 2026 05:12:18 +0200 Jarkko Sakkinen wrote:
> schedule_work() dispatches key_gc_work on the per-CPU system_wq, which can
> choke the queue:
>
> BUG: workqueue lockup - pool cpus=0 node=0 flags=0x2 nice=0 stuck for 30s!
>
> Queue the work on system_dfl_long_wq instead, which is an unbounded wq for
> long-running tasks i.e., it has the WQ_BOUND flag set and thus cannot hog
> the CPU core.
>
Nope there is no cpu hog at all given cond_resched().
Take a break instead then the workqueue has a chance for housekeeping.
--- x/security/keys/gc.c
+++ y/security/keys/gc.c
@@ -270,9 +270,8 @@ contended:
maybe_resched:
if (cursor) {
- cond_resched();
- spin_lock(&key_serial_lock);
- goto continue_scanning;
+ schedule_work(&key_gc_work);
+ return;
}
/* We've completed the pass. Set the timer if we need to and queue a
--
More information about the Linux-security-module-archive
mailing list