diff options
| author | Uladzislau Rezki (Sony) <urezki@gmail.com> | 2026-09-05 17:27:17 +0200 |
|---|---|---|
| committer | Andrew Morton <akpm@linux-foundation.org> | 2026-10-08 23:04:44 -0700 |
| commit | e6c55133cde470bb76588eeeeadeb248b6b0ba93 (patch) | |
| tree | 85c39329895c711e85428f1613902403421f7341 /tools/lib/python | |
| parent | 4615403074d98b680eb24f88afa141ba1dc421fe (diff) | |
| download | linux-next-e6c55133cde470bb76588eeeeadeb248b6b0ba93.tar.gz linux-next-e6c55133cde470bb76588eeeeadeb248b6b0ba93.zip | |
mm/vmalloc: use dedicated unbound workqueues for vmap drain
drain_vmap_area_work() function can take >10ms to complete when there are
many accumulated vmap areas in a system with high CPU count, causing
workqueue watchdog warnings when run via schedule_work():
workqueue: drain_vmap_area_work hogged CPU for >10000us
Move the top-level drain work to a dedicated WQ_UNBOUND workqueue so the
scheduler can run this background work on any available CPU, improving
responsiveness. Use the WQ_MEM_RECLAIM to ensure forward progress under
memory pressure.
Move purge helpers to separate WQ_UNBOUND | WQ_MEM_RECLAIM workqueue.
This allows drain_vmap_work to wait for helpers completion without
creating dependency on the same rescuer thread and avoid a potential
parent/child deadlock.
Simplify purge helper scheduling by removing cpumask-based iteration to
iterating directly over vmap nodes checking work_queued state.
Link: https://lore.kernel.org/20260905152717.11711-1-urezki@gmail.com
Fixes: 72210662c5a2 ("mm: vmalloc: offload free_vmap_area_lock lock")
Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reported-by: Li RongQing <lirongqing@baidu.com>
Closes: https://lore.kernel.org/all/20260319074307.2325-1-lirongqing@baidu.com/
Reviewed-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Ye Liu <liuye@kylinos.cn>
Cc: Dev Jain <dev.jain@arm.com>
Cc: <stable@vger.kernel.org>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
