summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2024-02-14 08:33:55 -1000
committerTejun Heo <tj@kernel.org>2024-02-14 08:33:55 -1000
commit2f34d7337d98f3eae7bd3d1270efaf9d8a17cfc6 (patch)
treeba618a794f4b55650672325b5c76d2d8e1cb0f05 /init
parentbf52b1ac6ab41a060511d56d0f2da12f3a2486db (diff)
workqueue: Fix queue_work_on() with BH workqueues
When queue_work_on() is used to queue a BH work item on a remote CPU, the work item is queued on that CPU but kick_pool() raises softirq on the local CPU. This leads to stalls as the work item won't be executed until something else on the remote CPU schedules a BH work item or tasklet locally. Fix it by bouncing raising softirq to the target CPU using per-cpu irq_work. Signed-off-by: Tejun Heo <tj@kernel.org> Fixes: 4cb1ef64609f ("workqueue: Implement BH workqueues to eventually replace tasklets")
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions