diff options
| author | Ming Lei <tom.leiming@gmail.com> | 2026-04-23 11:30:58 +0800 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-04-23 04:52:47 -0600 |
| commit | 309e02dccf64e1b7bd2067abedc270e33b0aadf3 (patch) | |
| tree | 60c12baee4f3adc7ce62a8588bd3ced055a8aabb /include/linux/debugobjects.h | |
| parent | ea1db795de5fe9ea6844f3152483c4d3a02c0480 (diff) | |
ublk: avoid unpinning pages under maple tree spinlock
ublk_shmem_remove_ranges() calls unpin_user_pages() while holding the
maple tree spinlock (mas_lock). Although unpin_user_pages() is safe in
atomic context, holding the spinlock across potentially many page
unpinning operations is not ideal.
Split into __ublk_shmem_remove_ranges() which erases up to 64 ranges
under mas_lock, collecting base_pfn and nr_pages into a temporary
xarray. Then drop the lock and unpin pages outside spinlock context.
ublk_shmem_remove_ranges() loops until all matching ranges are
processed.
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Link: https://patch.msgid.link/20260423033058.2805135-4-tom.leiming@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/debugobjects.h')
0 files changed, 0 insertions, 0 deletions
