aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
diff options
context:
space:
mode:
authorUday Shankar <[email protected]>2025-08-08 21:44:43 +0000
committerJens Axboe <[email protected]>2025-08-11 13:57:37 +0000
commit212c928d01e9ea1d1c46a114650b551da8ca823e (patch)
tree255d3f6e8e5f5ae72ddfe13b359f052b3020cbc4 /drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
parentdrbd: Remove the open-coded page pool (diff)
downloadkernel-212c928d01e9ea1d1c46a114650b551da8ca823e.tar.gz
kernel-212c928d01e9ea1d1c46a114650b551da8ca823e.zip
ublk: don't quiesce in ublk_ch_release
ublk_ch_release currently quiesces the device's request_queue while setting force_abort/fail_io. This avoids data races by preventing concurrent reads from the I/O path, but is not strictly needed - at this point, canceling is already set and guaranteed to be observed by any concurrently executing I/Os, so they will be handled properly even if the changes to force_abort/fail_io propagate to the I/O path later. Remove the quiesce/unquiesce calls from ublk_ch_release. This makes the writes to force_abort/fail_io concurrent with the reads in the I/O path, so make the accesses atomic. Before this change, the call to blk_mq_quiesce_queue was responsible for most (90%) of the runtime of ublk_ch_release. With that call eliminated, ublk_ch_release runs much faster. Here is a comparison of the total time spent in calls to ublk_ch_release when a server handling 128 devices exits, before and after this change: before: 1.11s after: 0.09s Signed-off-by: Uday Shankar <[email protected]> Reviewed-by: Ming Lei <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c')
0 files changed, 0 insertions, 0 deletions