Currently if a user enqueue 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 consistentcy cannot be addressed without refactoring the API.
system_wq is a per-CPU worqueue (replaced by system_percpu_wq), but the
current code does not benefit from it. Because of that, system_wq has been
replaced by system_dfl_wq, the new unbound workqueue.
The old wq will be kept for a few release cylces.
Suggested-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
arch/s390/kernel/hiperdispatch.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/s390/kernel/hiperdispatch.c b/arch/s390/kernel/hiperdispatch.c
index e7b66d046e8d..2507bc3f7757 100644
--- a/arch/s390/kernel/hiperdispatch.c
+++ b/arch/s390/kernel/hiperdispatch.c
@@ -191,7 +191,7 @@ int hd_enable_hiperdispatch(void)
return 0;
if (hd_online_cores <= hd_entitled_cores)
return 0;
- mod_delayed_work(system_wq, &hd_capacity_work, HD_DELAY_INTERVAL * hd_delay_factor);
+ mod_delayed_work(system_dfl_wq, &hd_capacity_work, HD_DELAY_INTERVAL * hd_delay_factor);
hd_update_capacities();
return 1;
}
--
2.51.0
On 9/17/25 5:38 PM, Marco Crivellari wrote: > Currently if a user enqueue 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 consistentcy cannot be addressed without refactoring the API. > > system_wq is a per-CPU worqueue (replaced by system_percpu_wq), but the > current code does not benefit from it. Because of that, system_wq has been > replaced by system_dfl_wq, the new unbound workqueue. That sounds right. Thanks! > The old wq will be kept for a few release cylces. > > Suggested-by: Tejun Heo <tj@kernel.org> > Signed-off-by: Marco Crivellari <marco.crivellari@suse.com> > --- > arch/s390/kernel/hiperdispatch.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/s390/kernel/hiperdispatch.c b/arch/s390/kernel/hiperdispatch.c > index e7b66d046e8d..2507bc3f7757 100644 > --- a/arch/s390/kernel/hiperdispatch.c > +++ b/arch/s390/kernel/hiperdispatch.c > @@ -191,7 +191,7 @@ int hd_enable_hiperdispatch(void) > return 0; > if (hd_online_cores <= hd_entitled_cores) > return 0; > - mod_delayed_work(system_wq, &hd_capacity_work, HD_DELAY_INTERVAL * hd_delay_factor); > + mod_delayed_work(system_dfl_wq, &hd_capacity_work, HD_DELAY_INTERVAL * hd_delay_factor); > hd_update_capacities(); > return 1; > } Thank you for making the change from *_percpu_wq to *_dfl_wq. I am not sure if its too late but you can have my r-b Reviewed-by: Mete Durlu <meted@linux.ibm.com>
On Wed, Sep 24, 2025 at 10:05 AM Mete Durlu <meted@linux.ibm.com> wrote: > [...] > Thank you for making the change from *_percpu_wq to *_dfl_wq. > I am not sure if its too late but you can have my r-b > > Reviewed-by: Mete Durlu <meted@linux.ibm.com> Many thanks, Mete! :-) -- Marco Crivellari L3 Support Engineer, Technology & Product
© 2016 - 2025 Red Hat, Inc.