Re: [PATCH v3 1/2] workqueue: Add warnings and fallback if system_{unbound}_wq is used
From: Breno Leitao
Date: Thu May 28 2026 - 12:45:23 EST
On Thu, May 28, 2026 at 06:01:58PM +0000, Marco Crivellari wrote:
> Currently many users transitioned already to the new introduced workqueue
> (system_percpu_wq, system_dfl_wq), but there are new users who still use the
> older system_wq and system_unbound_wq.
>
> This change try to push this transition forward, by warning whether the old
> workqueus are used.
>
> Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@xxxxxxxxxxxxx/
> Suggested-by: Tejun Heo <tj@xxxxxxxxxx>
> Signed-off-by: Marco Crivellari <marco.crivellari@xxxxxxxx>
> ---
> include/linux/workqueue.h | 1 +
> kernel/workqueue.c | 12 ++++++++++--
> 2 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
> index 6177624539b3..a283766a192a 100644
> --- a/include/linux/workqueue.h
> +++ b/include/linux/workqueue.h
> @@ -409,6 +409,7 @@ enum wq_flags {
> __WQ_DRAINING = 1 << 16, /* internal: workqueue is draining */
> __WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */
> __WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */
> + __WQ_DEPRECATED = 1 << 19, /* internal: workqueue is deprecated */
>
> /* BH wq only allows the following flags */
> __WQ_BH_ALLOWS = WQ_BH | WQ_HIGHPRI | WQ_PERCPU,
> diff --git a/kernel/workqueue.c b/kernel/workqueue.c
> index 33b721a9af02..0b55f8009eed 100644
> --- a/kernel/workqueue.c
> +++ b/kernel/workqueue.c
> @@ -2280,6 +2280,14 @@ static void __queue_work(int cpu, struct workqueue_struct *wq,
> unsigned int work_flags;
> unsigned int req_cpu = cpu;
>
> + /*
> + * NOTE: Check whether the used workqueue is deprecated and warn
> + */
> + if (unlikely(wq->flags & __WQ_DEPRECATED))
> + pr_warn_once("workqueue: work func %ps enqueued on deprecated workqueue. "
> + "Use system_{percpu|dfl}_wq instead.\n",
> + work->func);
Silly question, can we make this a build warning?