[PATCH V2 0/5] workqueue: Make the PWQ allocation and WQ enlistment atomic

Lai Jiangshan posted 5 patches 1 year, 5 months ago
kernel/workqueue.c | 87 +++++++++++++++++++++++++---------------------
1 file changed, 47 insertions(+), 40 deletions(-)
[PATCH V2 0/5] workqueue: Make the PWQ allocation and WQ enlistment atomic
Posted by Lai Jiangshan 1 year, 5 months ago
From: Lai Jiangshan <jiangshan.ljs@antgroup.com>

The PWQ allocation and WQ enlistment are not within the same lock-held
critical section; therefore, their states can become out of sync when
the user modifies the unbound mask or if CPU hotplug events occur in
the interim since those operations only update the WQs that are already
in the list.

Change from v1:
	Init rescuer's affinities as the wq's effective cpumask

Cc: Tejun Heo <tj@kernel.org>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Waiman Long <longman@redhat.com>

V1: https://lore.kernel.org/lkml/20240703033855.3373-1-jiangshanlai@gmail.com/

Lai Jiangshan (5):
  workqueue: Register sysfs after the whole creation of the new wq
  workqueue: Make rescuer initialization as the last step of the
    creation of a new wq
  workqueue: Move kthread_flush_worker() out of alloc_and_link_pwqs()
  workqueue: Put PWQ allocation and WQ enlistment in the same lock C.S.
  workqueue: Init rescuer's affinities as the wq's effective cpumask

 kernel/workqueue.c | 87 +++++++++++++++++++++++++---------------------
 1 file changed, 47 insertions(+), 40 deletions(-)

-- 
2.19.1.6.gb485710b
Re: [PATCH V2 0/5] workqueue: Make the PWQ allocation and WQ enlistment atomic
Posted by Tejun Heo 1 year, 5 months ago
On Thu, Jul 04, 2024 at 11:49:09AM +0800, Lai Jiangshan wrote:
> From: Lai Jiangshan <jiangshan.ljs@antgroup.com>
> 
> The PWQ allocation and WQ enlistment are not within the same lock-held
> critical section; therefore, their states can become out of sync when
> the user modifies the unbound mask or if CPU hotplug events occur in
> the interim since those operations only update the WQs that are already
> in the list.

Applied to wq/for-6.11.

Thanks.

-- 
tejun