workqueue: Link pwq's into wq->pwqs from oldest to newest
authorWaiman Long <longman@redhat.com>
Thu, 8 Feb 2024 16:10:11 +0000 (11:10 -0500)
committerTejun Heo <tj@kernel.org>
Thu, 8 Feb 2024 19:22:30 +0000 (09:22 -1000)
Add a new pwq into the tail of wq->pwqs so that pwq iteration will
start from the oldest pwq to the newest. This ordering will facilitate
the inclusion of ordered workqueues in a wq_unbound_cpumask update.

Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c

index cf514ba..fa7bd3b 100644 (file)
@@ -4804,7 +4804,7 @@ static void link_pwq(struct pool_workqueue *pwq)
        pwq->work_color = wq->work_color;
 
        /* link in @pwq */
-       list_add_rcu(&pwq->pwqs_node, &wq->pwqs);
+       list_add_tail_rcu(&pwq->pwqs_node, &wq->pwqs);
 }
 
 /* obtain a pool matching @attr and create a pwq associating the pool and @wq */