On 6/26/25 6:47 PM, Jens Axboe wrote: > > 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 Caleb, please check the final result in my for-next branch, as expected this conflicted with changes in master/block-6.16. -- Jens Axboe