drivers/ras/cec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Currently if a user enqueues a work item using schedule_delayed_work() the
used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
schedule_work() that is using system_wq and queue_work(), that makes use
again of WORK_CPU_UNBOUND.
This lack of consistency cannot be addressed without refactoring the API.
This patch continues the effort to refactor worqueue APIs, which has begun
with the change introducing new workqueues and a new alloc_workqueue flag:
commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
Replace system_wq with system_percpu_wq, keeping the old behavior.
The old wq (system_wq) will be kept for a few release cycles.
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
drivers/ras/cec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/ras/cec.c b/drivers/ras/cec.c
index e440b15fbabc..15f7f043c8ef 100644
--- a/drivers/ras/cec.c
+++ b/drivers/ras/cec.c
@@ -166,7 +166,7 @@ static void cec_mod_work(unsigned long interval)
unsigned long iv;
iv = interval * HZ;
- mod_delayed_work(system_wq, &cec_work, round_jiffies(iv));
+ mod_delayed_work(system_percpu_wq, &cec_work, round_jiffies(iv));
}
static void cec_work_fn(struct work_struct *work)
--
2.51.1
On Wed, Nov 05, 2025 at 05:08:19PM +0100, Marco Crivellari wrote:
> Currently if a user enqueues a work item using schedule_delayed_work() the
> used wq is "system_wq" (per-cpu wq) while queue_delayed_work() use
Please write out "wq" - the commit message should be for humans and not
contain variables or entities from the code.
> WORK_CPU_UNBOUND (used when a cpu is not specified). The same applies to
s/cpu/CPU/
> schedule_work() that is using system_wq and queue_work(), that makes use
> again of WORK_CPU_UNBOUND.
>
> This lack of consistency cannot be addressed without refactoring the API.
>
> This patch continues the effort to refactor worqueue APIs, which has begun
Avoid having "This patch" or "This commit" in the commit message. It is
tautologically useless.
Also, do
$ git grep 'This patch' Documentation/process
for more details.
> with the change introducing new workqueues and a new alloc_workqueue flag:
>
> commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
> commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
>
> Replace system_wq with system_percpu_wq, keeping the old behavior.
What is the new behavior?
Should this driver be converted to it?
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
Hi,
Many thanks for all the information. I've already changed the commit
log for the v2.
> > with the change introducing new workqueues and a new alloc_workqueue flag:
> >
> > commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
> > commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
> >
> > Replace system_wq with system_percpu_wq, keeping the old behavior.
>
> What is the new behavior?
>
> Should this driver be converted to it?
The code is using system_wq, this is the per-cpu workqueue. This
change will only
replace system_wq with system_percpu_wq. So the behavior is the same as before.
Thanks!
--
Marco Crivellari
L3 Support Engineer, Technology & Product
On Wed, Nov 05, 2025 at 05:55:49PM +0100, Marco Crivellari wrote:
> The code is using system_wq, this is the per-cpu workqueue. This change will
> only replace system_wq with system_percpu_wq. So the behavior is the same as
> before.
What does that mean?
We're going away from system_wq in favor or system_percpu_wq? Or?
It is not clear to me what the issue is what the new correct way should be...
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
On Wed, Nov 5, 2025 at 10:08 PM Borislav Petkov <bp@alien8.de> wrote:
> On Wed, Nov 05, 2025 at 05:55:49PM +0100, Marco Crivellari wrote:
> > The code is using system_wq, this is the per-cpu workqueue. This change will
> > only replace system_wq with system_percpu_wq. So the behavior is the same as
> > before.
>
> What does that mean?
>
> We're going away from system_wq in favor or system_percpu_wq? Or?
>
It's just a "rename" from system_wq to system_percpu_wq.
system_percpu_wq is a per-cpu workqueue, exactly as system_wq.
But in a few release cycles system_wq will be removed from the code.
If you want to have more details, you can read this discussion:
https://lore.kernel.org/all/20250221112003.1dSuoGyc@linutronix.de/
> It is not clear to me what the issue is what the new correct way should be...
There is no issue, except that system_wq will be removed. In order to
achieve the same result as system_wq, the correct workqueue to use
is system_percpu_wq.
As you can see from:
commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
system_percpu_wq is defined as a per-cpu workqueue, exactly as system_wq.
Thanks!
--
Marco Crivellari
L3 Support Engineer, Technology & Product
On Thu, Nov 06, 2025 at 10:17:18AM +0100, Marco Crivellari wrote:
> It's just a "rename" from system_wq to system_percpu_wq.
So why don't you call it that?
Instead of beating around the bush and confusing me? :-)
IOW, just do this:
"Rename system_wq to system_percpu_wq as part of workqueue refactoring.
For more details see the Link tag below.
...
Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@linutronix.de"
And now all those people who are interested in the details can go look it up.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
On Thu, Nov 6, 2025 at 11:49 AM Borislav Petkov <bp@alien8.de> wrote: > > On Thu, Nov 06, 2025 at 10:17:18AM +0100, Marco Crivellari wrote: > > It's just a "rename" from system_wq to system_percpu_wq. > > So why don't you call it that? > > Instead of beating around the bush and confusing me? :-) > > IOW, just do this: > > "Rename system_wq to system_percpu_wq as part of workqueue refactoring. > > For more details see the Link tag below. > > ... > > Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@linutronix.de" > > And now all those people who are interested in the details can go look it up. I was torn between "replace" and "rename", because there is a new workqueue, not only a rename of the old one, because for now it is still existing. :-) BTW, thanks for your advice, I will send the v2 improving the commit log! -- Marco Crivellari L3 Support Engineer, Technology & Product
On Thu, Nov 06, 2025 at 12:03:51PM +0100, Marco Crivellari wrote:
> I was torn between "replace" and "rename", because there is a new workqueue,
> not only a rename of the old one, because for now it is still existing. :-)
You can also say:
"Switch to using system_percpu_wq because system_wq is going away as part of
a workqueue restructuring."
Now it is perfectly clear what's going on.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
On Thu, Nov 6, 2025 at 12:12 PM Borislav Petkov <bp@alien8.de> wrote: > > On Thu, Nov 06, 2025 at 12:03:51PM +0100, Marco Crivellari wrote: > > I was torn between "replace" and "rename", because there is a new workqueue, > > not only a rename of the old one, because for now it is still existing. :-) > > You can also say: > > "Switch to using system_percpu_wq because system_wq is going away as part of > a workqueue restructuring." > > Now it is perfectly clear what's going on. Cool, I like this version. Thank you! -- Marco Crivellari L3 Support Engineer, Technology & Product
© 2016 - 2026 Red Hat, Inc.