* [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
@ 2025-11-05 16:08 Marco Crivellari
2025-11-05 16:29 ` Borislav Petkov
0 siblings, 1 reply; 9+ messages in thread
From: Marco Crivellari @ 2025-11-05 16:08 UTC (permalink / raw)
To: linux-kernel, linux-edac
Cc: Tejun Heo, Lai Jiangshan, Frederic Weisbecker,
Sebastian Andrzej Siewior, Marco Crivellari, Michal Hocko,
Tony Luck, Borislav Petkov
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-05 16:08 [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq Marco Crivellari
@ 2025-11-05 16:29 ` Borislav Petkov
2025-11-05 16:55 ` Marco Crivellari
0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2025-11-05 16:29 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-05 16:29 ` Borislav Petkov
@ 2025-11-05 16:55 ` Marco Crivellari
2025-11-05 21:08 ` Borislav Petkov
0 siblings, 1 reply; 9+ messages in thread
From: Marco Crivellari @ 2025-11-05 16:55 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-05 16:55 ` Marco Crivellari
@ 2025-11-05 21:08 ` Borislav Petkov
2025-11-06 9:17 ` Marco Crivellari
0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2025-11-05 21:08 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-05 21:08 ` Borislav Petkov
@ 2025-11-06 9:17 ` Marco Crivellari
2025-11-06 10:49 ` Borislav Petkov
0 siblings, 1 reply; 9+ messages in thread
From: Marco Crivellari @ 2025-11-06 9:17 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-06 9:17 ` Marco Crivellari
@ 2025-11-06 10:49 ` Borislav Petkov
2025-11-06 11:03 ` Marco Crivellari
0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2025-11-06 10:49 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-06 10:49 ` Borislav Petkov
@ 2025-11-06 11:03 ` Marco Crivellari
2025-11-06 11:11 ` Borislav Petkov
0 siblings, 1 reply; 9+ messages in thread
From: Marco Crivellari @ 2025-11-06 11:03 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-06 11:03 ` Marco Crivellari
@ 2025-11-06 11:11 ` Borislav Petkov
2025-11-06 11:16 ` Marco Crivellari
0 siblings, 1 reply; 9+ messages in thread
From: Borislav Petkov @ 2025-11-06 11:11 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq
2025-11-06 11:11 ` Borislav Petkov
@ 2025-11-06 11:16 ` Marco Crivellari
0 siblings, 0 replies; 9+ messages in thread
From: Marco Crivellari @ 2025-11-06 11:16 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel, linux-edac, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Tony Luck
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
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-11-06 11:17 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-05 16:08 [PATCH] RAS/CEC: replace use of system_wq with system_percpu_wq Marco Crivellari
2025-11-05 16:29 ` Borislav Petkov
2025-11-05 16:55 ` Marco Crivellari
2025-11-05 21:08 ` Borislav Petkov
2025-11-06 9:17 ` Marco Crivellari
2025-11-06 10:49 ` Borislav Petkov
2025-11-06 11:03 ` Marco Crivellari
2025-11-06 11:11 ` Borislav Petkov
2025-11-06 11:16 ` Marco Crivellari
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®