On Mon, Sep 8, 2025 at 1:44 PM Alexander Gordeev <agordeev@xxxxxxxxxxxxx> wrote: > > On Fri, Sep 05, 2025 at 11:08:57AM +0200, Marco Crivellari wrote: > > Hi Marco, > > > 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, yet nothing in its name tells about that > > CPU affinity constraint, which is very often not required by users. Make > > it clear by adding a system_percpu_wq. > > This paragraph is not exactly correct. You switch from system_wq to > system_percpu_wq - which are two different queues with the same > characteristics: > > system_wq = alloc_workqueue("events", 0, 0); > system_percpu_wq = alloc_workqueue("events", 0, 0); Hi Alexander, Yes, system_percpu_wq will be in future the replacement of system_wq. > > queue_work() / queue_delayed_work() mod_delayed_work() will now use the > > new per-cpu wq: whether the user still stick on the old name a warn will > > be printed along a wq redirect to the new one. > > > > This patch add the new system_percpu_wq except for mm, fs and net > > subsystem, whom are handled in separated patches. > > I do not see this patch does anything like that. > I'm sorry for the confusion, I forgot to update the log after the previous change. There are not, indeed, the changes you mentioned. Thanks! -- Marco Crivellari L3 Support Engineer, Technology & Product marco.crivellari@xxxxxxxx