RE: [PATCH v3 3/3] wifi: iwlwifi: mvm: replace use of system_wq with system_percpu_wq
From: Korenblit, Miriam Rachel
Date: Tue Feb 10 2026 - 09:40:58 EST
> -----Original Message-----
> From: Marco Crivellari <marco.crivellari@xxxxxxxx>
> Sent: Tuesday, February 10, 2026 4:34 PM
> To: linux-kernel@xxxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx
> Cc: Tejun Heo <tj@xxxxxxxxxx>; Lai Jiangshan <jiangshanlai@xxxxxxxxx>; Frederic
> Weisbecker <frederic@xxxxxxxxxx>; Sebastian Andrzej Siewior
> <bigeasy@xxxxxxxxxxxxx>; Marco Crivellari <marco.crivellari@xxxxxxxx>; Michal
> Hocko <mhocko@xxxxxxxx>; Korenblit, Miriam Rachel
> <miriam.rachel.korenblit@xxxxxxxxx>; Johannes Berg
> <johannes@xxxxxxxxxxxxxxxx>
> Subject: [PATCH v3 3/3] wifi: iwlwifi: mvm: replace use of system_wq with
> system_percpu_wq
>
> This patch continues the effort to refactor workqueue APIs, which has begun with
> the changes 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")
>
> The point of the refactoring is to eventually alter the default behavior of
> workqueues to become unbound by default so that their workload placement is
> optimized by the scheduler.
>
> Before that to happen after a careful review and conversion of each individual
> case, workqueue users must be converted to the better named new workqueues
> with no intended behaviour changes:
>
> system_wq -> system_percpu_wq
> system_unbound_wq -> system_dfl_wq
>
> This way the old obsolete workqueues (system_wq, system_unbound_wq) can be
> removed in the future.
>
> Suggested-by: Tejun Heo <tj@xxxxxxxxxx>
> Signed-off-by: Marco Crivellari <marco.crivellari@xxxxxxxx>
> ---
> drivers/net/wireless/intel/iwlwifi/mvm/tdls.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tdls.c
> b/drivers/net/wireless/intel/iwlwifi/mvm/tdls.c
> index 36379b738de1..0df31639fa5e 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/tdls.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tdls.c
> @@ -234,7 +234,7 @@ void iwl_mvm_rx_tdls_notif(struct iwl_mvm *mvm,
> struct iwl_rx_cmd_buffer *rxb)
> * Also convert TU to msec.
> */
> delay = TU_TO_MS(vif->bss_conf.dtim_period * vif-
> >bss_conf.beacon_int);
> - mod_delayed_work(system_wq, &mvm->tdls_cs.dwork,
> + mod_delayed_work(system_percpu_wq, &mvm->tdls_cs.dwork,
> msecs_to_jiffies(delay));
>
> iwl_mvm_tdls_update_cs_state(mvm, IWL_MVM_TDLS_SW_ACTIVE);
> @@ -548,7 +548,7 @@ iwl_mvm_tdls_channel_switch(struct ieee80211_hw
> *hw,
> */
> delay = 2 * TU_TO_MS(vif->bss_conf.dtim_period *
> vif->bss_conf.beacon_int);
> - mod_delayed_work(system_wq, &mvm->tdls_cs.dwork,
> + mod_delayed_work(system_percpu_wq, &mvm->tdls_cs.dwork,
> msecs_to_jiffies(delay));
> return 0;
> }
> @@ -659,6 +659,6 @@ iwl_mvm_tdls_recv_channel_switch(struct
> ieee80211_hw *hw,
> /* register a timeout in case we don't succeed in switching */
> delay = vif->bss_conf.dtim_period * vif->bss_conf.beacon_int *
> 1024 / 1000;
> - mod_delayed_work(system_wq, &mvm->tdls_cs.dwork,
> + mod_delayed_work(system_percpu_wq, &mvm->tdls_cs.dwork,
> msecs_to_jiffies(delay));
> }
> --
> 2.52.0
Acked-by: Miri Korenblit <miriam.rachel.korenblit@xxxxxxxxx>