Re: [PATCH v2 00/14] ublk: allow off-daemon zero-copy buffer registration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux