Caleb Sander Mateos
bfe1255712
ublk: optimize ublk_user_copy() on daemon task
...
ublk user copy syscalls may be issued from any task, so they take a
reference count on the struct ublk_io to check whether it is owned by
the ublk server and prevent a concurrent UBLK_IO_COMMIT_AND_FETCH_REQ
from completing the request. However, if the user copy syscall is issued
on the io's daemon task, a concurrent UBLK_IO_COMMIT_AND_FETCH_REQ isn't
possible, so the atomic reference count dance is unnecessary. Check for
UBLK_IO_FLAG_OWNED_BY_SRV to ensure the request is dispatched to the
sever and obtain the request from ublk_io's req field instead of looking
it up on the tagset. Skip the reference count increment and decrement.
Commit 8a8fe42d76 ("ublk: optimize UBLK_IO_REGISTER_IO_BUF on daemon
task") made an analogous optimization for ublk zero copy buffer
registration.
Signed-off-by: Caleb Sander Mateos <csander@purestorage.com >
Reviewed-by: Ming Lei <ming.lei@redhat.com >
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2026-01-12 09:16:38 -07:00
..
2025-12-15 13:00:03 -06:00
2025-12-15 13:00:33 +01:00
2025-12-05 17:29:04 -08:00
2025-12-06 18:34:24 -08:00
2025-12-16 14:23:10 +09:00
2025-11-25 12:39:26 +01:00
2025-12-16 12:58:57 +01:00
2026-01-12 09:16:38 -07:00
2025-12-01 16:21:16 -05:00
2025-12-06 18:34:24 -08:00
2025-11-21 18:42:02 +00:00
2025-12-06 18:34:24 -08:00
2025-12-08 09:38:52 +09:00
2025-12-05 17:29:04 -08:00
2025-12-06 18:34:24 -08:00
2025-12-16 07:59:30 -06:00
2025-12-05 17:29:04 -08:00
2025-12-06 10:15:41 -08:00
2025-12-05 17:47:59 -08:00
2025-12-05 13:52:43 -08:00
2025-11-26 13:58:59 +09:00
2025-11-27 18:11:43 -08:00
2025-12-09 06:35:53 +09:00
2025-12-04 18:42:48 -08:00
2025-11-25 19:20:42 -08:00
2025-12-06 09:01:27 -08:00
2025-12-26 22:04:03 +09:00
2025-12-24 21:32:57 +01:00
2025-11-26 14:28:19 +01:00
2025-12-13 16:36:57 +12:00
2025-12-27 16:00:47 +10:00
2025-11-26 14:40:59 +01:00
2025-12-21 15:21:10 -08:00
2025-12-09 06:10:17 +09:00
2025-12-19 08:44:22 -08:00
2025-12-06 18:34:24 -08:00
2025-12-17 00:28:51 +01:00
2025-12-12 23:59:39 +01:00
2025-12-06 18:34:24 -08:00
2025-12-04 18:54:37 -08:00
2025-12-21 15:21:10 -08:00
2025-12-21 14:41:29 -08:00
2025-12-14 06:07:09 +12:00
2025-12-05 17:29:04 -08:00
2025-12-05 17:29:04 -08:00
2025-11-28 09:47:44 -06:00
2026-01-11 13:16:36 -07:00
2025-12-06 08:27:07 -08:00
2025-12-05 17:29:04 -08:00
2025-12-04 15:18:33 -08:00
2025-12-19 15:09:09 +00:00
2025-12-17 14:14:51 +01:00
2025-12-09 08:50:27 +09:00
2025-11-26 15:09:30 +01:00
2025-12-19 07:55:35 +12:00
2025-12-11 01:40:00 -08:00
2025-12-06 09:32:25 -08:00
2025-12-09 08:53:24 +09:00
2025-12-06 18:34:24 -08:00
2025-12-16 07:59:30 -06:00
2025-12-19 13:56:17 +01:00
2025-12-13 16:29:22 +12:00
2025-12-06 18:34:24 -08:00
2025-12-02 17:03:55 -08:00
2025-12-09 06:45:00 +09:00
2025-12-10 06:38:17 +09:00
2025-12-04 13:50:39 -08:00
2025-12-05 17:29:04 -08:00
2025-12-17 17:24:28 +01:00
2025-12-03 12:42:36 -08:00
2025-12-03 17:24:33 -08:00
2025-12-13 16:41:50 +12:00
2025-12-04 17:10:08 -08:00
2025-12-24 11:31:29 +00:00
2025-11-29 15:20:23 -06:00
2025-12-08 09:38:52 +09:00
2025-11-26 10:16:10 -06:00
2025-12-13 17:09:06 +12:00
2025-12-07 16:15:19 +01:00
2025-12-16 21:24:28 -05:00
2025-12-03 17:24:33 -08:00
2025-12-06 09:01:27 -08:00
2025-12-08 12:37:27 +05:30
2025-12-23 15:18:22 +00:00
2025-12-06 18:52:00 -08:00
2025-12-14 15:35:35 +12:00
2025-11-21 21:27:20 +01:00
2025-12-15 12:47:39 +01:00
2025-12-06 18:42:12 -08:00
2025-12-23 11:55:16 +01:00
2025-12-16 22:24:36 -05:00
2025-11-26 15:10:39 +01:00
2025-12-23 15:59:03 +01:00
2025-12-05 13:52:43 -08:00
2025-12-04 19:42:53 -08:00
2025-12-24 08:02:57 -05:00
2025-12-06 15:41:26 -08:00
2025-12-04 17:34:16 -08:00
2025-11-27 02:03:07 -05:00
2025-12-06 10:00:49 -08:00
2025-12-06 10:49:19 -08:00
2025-12-06 18:52:00 -08:00
2025-12-06 18:52:00 -08:00