On 3/12/25 14:23, Sidong Yang wrote:
This patche series introduce io_uring_cmd_import_vec. With this function, Multiple fixed buffer could be used in uring cmd. It's vectored version for io_uring_cmd_import_fixed(). Also this patch series includes a usage for new api for encoded read in btrfs by using uring cmd.
Pretty much same thing, we're still left with 2 allocations in the hot path. What I think we can do here is to add caching on the io_uring side as we do with rw / net, but that would be invisible for cmd drivers. And that cache can be reused for normal iovec imports. https://github.com/isilence/linux.git regvec-import-cmd (link for convenience) https://github.com/isilence/linux/tree/regvec-import-cmd Not really target tested, no btrfs, not any other user, just an idea. There are 4 patches, but the top 3 are of interest. Another way would be to cache in btrfs, but then btrfs would need to care about locking for the cache and some other bits, and we wouldn't be able to reuse it for other drivers. -- Pavel Begunkov