On Fri, 20 Jun 2025 09:09:54 -0600, Caleb Sander Mateos wrote: > Currently ublk zero-copy requires ublk request buffers to be registered > and unregistered by the ublk I/O's daemon task. However, as currently > implemented, there is no reason for this restriction. Registration looks > up the request via the ublk device's tagset rather than the daemon-local > ublk_io structure and takes an atomic reference to prevent racing with > dispatch or completion of the request. Ming has expressed interest in > relaxing this restriction[1] so the ublk server can offload the I/O > operation that uses the zero-copy buffer to another thread. > > [...] Applied, thanks! [01/14] ublk: use vmalloc for ublk_device's __queues commit: d2bc702a8db21c9819f25737a4343f6dfc238582 [02/14] ublk: remove struct ublk_rq_data commit: f053751a413b232cecd5cb3d3d9c1f972a849310 [03/14] ublk: check cmd_op first commit: 6762d9c0b76e2a449a818539f352bd14a5799512 [04/14] ublk: handle UBLK_IO_FETCH_REQ earlier commit: 1a3402e31fca3dbeb915c34a077ca3d143b42e55 [05/14] ublk: remove task variable from __ublk_ch_uring_cmd() commit: e9415d3aee01b51c8633d38ca62f74f7071a74ba [06/14] ublk: consolidate UBLK_IO_FLAG_{ACTIVE,OWNED_BY_SRV} checks commit: 82293b83e42366d15ded8516a4d45f8d466e69ba [07/14] ublk: move ublk_prep_cancel() to case UBLK_IO_COMMIT_AND_FETCH_REQ commit: 624006c145af20924624d4f2846da74f94aa9078 [08/14] ublk: don't take ublk_queue in ublk_unregister_io_buf() commit: 3e6b973df269180c22e024606585f8b4ca33ca99 [09/14] ublk: allow UBLK_IO_(UN)REGISTER_IO_BUF on any task commit: 73166f433b3c2a6acebb850f5eefea36c137f6c3 [10/14] ublk: return early if blk_should_fake_timeout() commit: 358f19d7cadbb5a7626cfd5822260aadead7f37e [11/14] ublk: optimize UBLK_IO_REGISTER_IO_BUF on daemon task commit: 47c894fdaaee8b424cdbcd0fe490a10ea89ab0ee [12/14] ublk: optimize UBLK_IO_UNREGISTER_IO_BUF on daemon task commit: 230c5a4cfc6f98d2432aff05bb3ec092fde519f5 [13/14] ublk: remove ubq checks from ublk_{get,put}_req_ref() commit: 21d2d986b5511ac017660720ed0016ce2780396c [14/14] ublk: cache-align struct ublk_io commit: 456ef6804f232f3b2f60147046e05500147b0099 Best regards, -- Jens Axboe