On Mon, May 08, 2023 at 03:50:21PM -1000, Tejun Heo wrote: > These workqueues only host a single work item and thus doen't need explicit > concurrency limit. Let's use the default @max_active. This doesn't cost > anything and clearly expresses that @max_active doesn't matter. > > Signed-off-by: Tejun Heo <tj@xxxxxxxxxx> > Cc: Amitkumar Karwar <amitkarwar@xxxxxxxxx> > Cc: Ganapathi Bhat <ganapathi017@xxxxxxxxx> > Cc: Sharvari Harisangam <sharvari.harisangam@xxxxxxx> > Cc: Xinming Hu <huxinming820@xxxxxxxxx> > Cc: Kalle Valo <kvalo@xxxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > Cc: Eric Dumazet <edumazet@xxxxxxxxxx> > Cc: Jakub Kicinski <kuba@xxxxxxxxxx> > Cc: Paolo Abeni <pabeni@xxxxxxxxxx> > Cc: linux-wireless@xxxxxxxxxxxxxxx > Cc: netdev@xxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx Reviewed-by: Brian Norris <briannorris@xxxxxxxxxxxx> I'll admit, the workqueue documentation sounds a bit like "max_active == 1 + WQ_UNBOUND" is what we want ("one work item [...] active at any given time"), but that's more of my misunderstanding than anything -- each work item can only be active in a single context at any given time, so that note is talking about distinct (i.e., more than 1) work items. While I'm here: we're still debugging what's affecting WiFi performance on some of our WiFi systems, but it's possible I'll be turning some of these into struct kthread_worker instead. We can cross that bridge (including potential conflicts) if/when we come to it though. Thanks, Brian