diff options
author | Caleb Sander Mateos <csander@purestorage.com> | 2025-06-20 09:10:05 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-06-30 20:13:42 -0600 |
commit | 8a8fe42d765bb22cc0e91b053bfebf0fbdec3b5a (patch) | |
tree | 25cc0a88444667376939b1a3057412eb6beafc57 /scripts/lib/kdoc/kdoc_files.py | |
parent | 7ab741081be307e3ec5dc8ed55ed8fc0f5b2a0e3 (diff) |
ublk: optimize UBLK_IO_REGISTER_IO_BUF on daemon task
ublk_register_io_buf() performs an expensive atomic refcount increment,
as well as a lot of pointer chasing to look up the struct request.
Create a separate ublk_daemon_register_io_buf() for the daemon task to
call. Initialize ublk_io's reference count to a large number, introduce
a field task_registered_buffers to count the buffers registered on the
daemon task, and atomically subtract the large number minus
task_registered_buffers in ublk_commit_and_fetch().
Also obtain the struct request directly from ublk_io's req field instead
of looking it up on the tagset.
Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250620151008.3976463-12-csander@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'scripts/lib/kdoc/kdoc_files.py')
0 files changed, 0 insertions, 0 deletions