Skip to content

Commit 3e82b41

Browse files
committed
Merge tag 'wq-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
Pull workqueue updates from Tejun Heo: - When per-cpu workqueue workers expire after sitting idle for too long, they used to wake up to the CPU that they're bound to in order to exit. This unfortunately could cause unwanted disturbances on CPUs isolated for e.g. RT applications. The worker exit path is restructured so that an existing worker is unbound from its CPU before being woken up for the last time, allowing it to migrate away from an isolated CPU for exiting. - A couple debug improvements. Watchdog dump is made more compact and workqueue now warns if used-after-free during the RCU grace period after destroy_workqueue(). * tag 'wq-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: Fold rebind_worker() within rebind_workers() workqueue: Unbind kworkers before sending them to exit() workqueue: Don't hold any lock while rcuwait'ing for !POOL_MANAGER_ACTIVE workqueue: Convert the idle_timer to a timer + work_struct workqueue: Factorize unbind/rebind_workers() logic workqueue: Protects wq_unbound_cpumask with wq_pool_attach_mutex workqueue: Make show_pwq() use run-length encoding workqueue: Add a new flag to spot the potential UAF error
2 parents 9e58df9 + c63a2e5 commit 3e82b41

File tree

2 files changed

+210
-71
lines changed

2 files changed

+210
-71
lines changed

include/linux/workqueue.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ enum {
335335
*/
336336
WQ_POWER_EFFICIENT = 1 << 7,
337337

338+
__WQ_DESTROYING = 1 << 15, /* internal: workqueue is destroying */
338339
__WQ_DRAINING = 1 << 16, /* internal: workqueue is draining */
339340
__WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */
340341
__WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */

0 commit comments

Comments
 (0)