Re: [PATCH wq/for-6.9 v5 0/4] workqueue: Enable unbound cpumask update on ordered workqueues

From: Waiman Long
Date: Thu Feb 08 2024 - 14:38:41 EST

On 2/8/24 14:26, Tejun Heo wrote:
On Thu, Feb 08, 2024 at 11:10:10AM -0500, Waiman Long wrote:
- [v4]
- Streamline patch 2 by simplifying unplug_oldest_pwq() and calling it
only in pwq_release_workfn().

- [v3]
- Rebase on the latest for-6.9 branch again & discard the use of
__WQ_ORDERED_EXPLICIT and resetting of __WQ_ORDERED.
- Add a new patch 1 to change the ordering of pwq's in wq->pwqs from
oldest to newest.
- Change the terminalogy from freeze/thaw to plug/unplug.
- Allow more than 2 pwq's in wq->pwqs of ordered workqueue but only the
oldest one is unplugged. This eliminates the need to wait for
the draining of extra pwq in workqueue_apply_unbound_cpumask().

- [v2]
- Drop patch 1 as it has been merged into the for-6.9 branch.
- Use rcu_access_pointer() to access wq->dfl_pwq.
- Use RCU protection instead of acquiring wq->mutex in
Applied the series w/ (w/ the updated second patch) to wq/for-6.9.

Thanks for working on this. It's really great that this got solved finally.

Me too. Thanks for all the good suggestions that you had given me as I don't have a full understanding of all the different pieces of the workqueue code.