aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/uapi/linux/android/ssh:/git@git.zx2c4.com
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2025-09-04 16:25:23 +0200
committerTejun Heo <tj@kernel.org>2025-09-04 07:28:33 -1000
commitad7c7f4b9c6c2950778e5bd305392a333de73912 (patch)
treedcd65102da77a7460dbf8e328f048eda467c6997 /include/uapi/linux/android/ssh:/git@git.zx2c4.com
parentworkqueue: Remove rcu_read_lock/unlock() in wq_watchdog_timer_fn() (diff)
workqueue: Provide a handshake for canceling BH workers
While a BH work item is canceled, the core code spins until it determines that the item completed. On PREEMPT_RT the spinning relies on a lock in local_bh_disable() to avoid a live lock if the canceling thread has higher priority than the BH-worker and preempts it. This lock ensures that the BH-worker makes progress by PI-boosting it. This lock in local_bh_disable() is a central per-CPU BKL and about to be removed. To provide the required synchronisation add a per pool lock. The lock is acquired by the bh_worker at the begin while the individual callbacks are invoked. To enforce progress in case of interruption, __flush_work() needs to acquire the lock. This will flush all BH-work items assigned to that pool. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/uapi/linux/android/ssh:/git@git.zx2c4.com')
0 files changed, 0 insertions, 0 deletions