drivers/net/wireless/ath/ath6kl/usb.c | 2 +- drivers/net/wireless/st/cw1200/bh.c | 5 +++-- net/wireless/core.c | 4 ++-- net/wireless/sysfs.c | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-)
Hi,
=== Current situation: problems ===
Let's consider a nohz_full system with isolated CPUs: wq_unbound_cpumask is
set to the housekeeping CPUs, for !WQ_UNBOUND the local CPU is selected.
This leads to different scenarios if a work item is scheduled on an
isolated CPU where "delay" value is 0 or greater then 0:
schedule_delayed_work(, 0);
This will be handled by __queue_work() that will queue the work item on the
current local (isolated) CPU, while:
schedule_delayed_work(, 1);
Will move the timer on an housekeeping CPU, and schedule the work there.
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 consistency cannot be addressed without refactoring the API.
=== Recent changes to the WQ API ===
The following, address the recent changes in the Workqueue API:
- commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
- commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
The old workqueues will be removed in a future release cycle.
=== Introduced Changes by this series ===
1) [P 1-2] WQ_PERCPU to alloc_workqueue()
Add a new WQ_PERCPU flag to explicitly request alloc_workqueue() to be
per-cpu when WQ_UNBOUND has not been specified.
1) [P 3] Replace uses of system_unbound_wq
system_unbound_wq is to be used when locality is not required.
Switch to using system_dfl_wq because system_unbound_wq is going away as
part of a workqueue restructuring.
Thanks!
Marco Crivellari (3):
ath6kl: add WQ_PERCPU to alloc_workqueue users
cw1200: add WQ_PERCPU to alloc_workqueue users
wifi: replace use of system_unbound_wq with system_dfl_wq
drivers/net/wireless/ath/ath6kl/usb.c | 2 +-
drivers/net/wireless/st/cw1200/bh.c | 5 +++--
net/wireless/core.c | 4 ++--
net/wireless/sysfs.c | 2 +-
4 files changed, 7 insertions(+), 6 deletions(-)
--
2.51.1
On Thu, Nov 13, 2025 at 5:20 PM Marco Crivellari <marco.crivellari@suse.com> wrote: > [...] > Marco Crivellari (3): > ath6kl: add WQ_PERCPU to alloc_workqueue users > cw1200: add WQ_PERCPU to alloc_workqueue users > wifi: replace use of system_unbound_wq with system_dfl_wq > > drivers/net/wireless/ath/ath6kl/usb.c | 2 +- > drivers/net/wireless/st/cw1200/bh.c | 5 +++-- > net/wireless/core.c | 4 ++-- > net/wireless/sysfs.c | 2 +- > 4 files changed, 7 insertions(+), 6 deletions(-) Gentle ping. Thanks! -- Marco Crivellari L3 Support Engineer
On Tue, 2026-01-13 at 11:28 +0100, Marco Crivellari wrote: > On Thu, Nov 13, 2025 at 5:20 PM Marco Crivellari > <marco.crivellari@suse.com> wrote: > > [...] > > Marco Crivellari (3): > > ath6kl: add WQ_PERCPU to alloc_workqueue users > > cw1200: add WQ_PERCPU to alloc_workqueue users > > wifi: replace use of system_unbound_wq with system_dfl_wq > > > > drivers/net/wireless/ath/ath6kl/usb.c | 2 +- > > drivers/net/wireless/st/cw1200/bh.c | 5 +++-- > > net/wireless/core.c | 4 ++-- > > net/wireless/sysfs.c | 2 +- > > 4 files changed, 7 insertions(+), 6 deletions(-) > > Gentle ping. I have none of these pending now - if I didn't accept them then they're lost. I did try to apply another similar one yesterday but it was already there in a slightly different format, so maybe things have gotten out of sync? johannes
On Tue, Jan 13, 2026 at 12:05 PM Johannes Berg <johannes@sipsolutions.net> wrote: > I have none of these pending now - if I didn't accept them then they're > lost. I did try to apply another similar one yesterday but it was > already there in a slightly different format, so maybe things have > gotten out of sync? > > johannes Hi Johannes, That's likely. I rebased now on v6.19-rc5 and I can only see in my branch: "ath6kl: add WQ_PERCPU to alloc_workqueue users". The others seem already applied. Well, sorry for the noise. Thank you! -- Marco Crivellari L3 Support Engineer
On Tue, 2026-01-13 at 12:16 +0100, Marco Crivellari wrote: > On Tue, Jan 13, 2026 at 12:05 PM Johannes Berg > <johannes@sipsolutions.net> wrote: > > I have none of these pending now - if I didn't accept them then they're > > lost. I did try to apply another similar one yesterday but it was > > already there in a slightly different format, so maybe things have > > gotten out of sync? > > > > johannes > > Hi Johannes, > > That's likely. > I rebased now on v6.19-rc5 and I can only see in my branch: > "ath6kl: add WQ_PERCPU to alloc_workqueue users". > > The others seem already applied. > > Well, sorry for the noise. OK cool, no worries. FWIW I might have even more in wireless-next: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/ If you want to see what's pending, we have it in patchwork for wireless: https://patchwork.kernel.org/project/linux-wireless/list/ The ath6kl one seems to be pending still on Jeff: https://patchwork.kernel.org/project/linux-wireless/patch/20251113162032.394804-2-marco.crivellari@suse.com/ johannes
On Tue, Jan 13, 2026 at 12:19 PM Johannes Berg <johannes@sipsolutions.net> wrote: > OK cool, no worries. FWIW I might have even more in wireless-next: > https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/ > > If you want to see what's pending, we have it in patchwork for wireless: > https://patchwork.kernel.org/project/linux-wireless/list/ > > The ath6kl one seems to be pending still on Jeff: > https://patchwork.kernel.org/project/linux-wireless/patch/20251113162032.394804-2-marco.crivellari@suse.com/ Aha, nice, many thanks! -- Marco Crivellari L3 Support Engineer
Marco Crivellari <marco.crivellari@suse.com> wrote:
> On Tue, Jan 13, 2026 at 12:19 PM Johannes Berg
> <johannes@sipsolutions.net> wrote:
> > OK cool, no worries. FWIW I might have even more in wireless-next:
> > https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/
> >
> > If you want to see what's pending, we have it in patchwork for wireless:
> > https://patchwork.kernel.org/project/linux-wireless/list/
> >
> > The ath6kl one seems to be pending still on Jeff:
> >
> https://patchwork.kernel.org/project/linux-wireless/patch/20251113162032.394804-2-marco.crivellari@sus
> e.com/
>
> Aha, nice, many thanks!
>
The rtw88 one [1] is still queued on my hand, because it was wrongly applied [2]
causing regression and reverted by [3]. However, I have not rebased rtw-next
tree on top of wireless tree, so I can't apply [1]. Do you think this is urgent?
If so, I'd send a pull request to wireless-next right now since it is 6.19-rc5.
I don't want frequent pull-request that maintainers have extra load.
[1] https://patchwork.kernel.org/project/linux-wireless/patch/20251113160605.381777-3-marco.crivellari@suse.com/
[2] 9c194fe4625d ("wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users")
[3] 0ff5e81e1518 ("Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"")
On Wed, Jan 14, 2026 at 1:42 AM Ping-Ke Shih <pkshih@realtek.com> wrote:
> [...]
> The rtw88 one [1] is still queued on my hand, because it was wrongly applied [2]
> causing regression and reverted by [3]. However, I have not rebased rtw-next
> tree on top of wireless tree, so I can't apply [1]. Do you think this is urgent?
> If so, I'd send a pull request to wireless-next right now since it is 6.19-rc5.
> I don't want frequent pull-request that maintainers have extra load.
>
> [1] https://patchwork.kernel.org/project/linux-wireless/patch/20251113160605.381777-3-marco.crivellari@suse.com/
> [2] 9c194fe4625d ("wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users")
> [3] 0ff5e81e1518 ("Revert "wifi: rtw88: add WQ_UNBOUND to alloc_workqueue users"")
Hi,
I still have some other patches around, so if you have to posticipate
this to the next release is fine with me, no need to rush.
Thanks!
--
Marco Crivellari
L3 Support Engineer
© 2016 - 2026 Red Hat, Inc.