[PATCH 0/2] workqueue: Make WQ_UNBOUND the default behavior

From: Marco Crivellari

Date: Thu Sep 03 2026 - 12:29:00 EST


Hi,

Currently alloc_workqueue() make sure one among WQ_UNBOUND or WQ_PERCPU is
present. This is enforced warning and setting WQ_PERCPU as default when
alloc_workqueue() without WQ_PERCPU or WQ_UNBOUND.

[ P1 ] change this behavior: if no flags are specified, WQ_UNBOUND is
set by default, changing the default behavior when flags are not present.

The WARN_ONCE() when neither flags are present has been removed and it has
been replaced by pr_warn_once(): from now on, every alloc_users()
without WQ_PERCPU will be considered unbound.

Q: I decided to pr_warn_once() just to make sure users are aware of the new
behavior. It makes sense or we can just drop it directly?
I don't think the WARN_ONCE() is appropriate now, for this specific path.

[ P2 ] updates the documentation accordingly.

Thanks!

Marco Crivellari (2):
workqueue: Make alloc_workqueue() unbound by default
doc: Update WQ_UNBOUND documentation

Documentation/core-api/workqueue.rst | 2 ++
kernel/workqueue.c | 14 +++++++-------
2 files changed, 9 insertions(+), 7 deletions(-)

--
2.55.0