Re: [PATCH 0/7] direct-io: even more flexible io vectors
From: Jens Axboe <axboe@kernel.dk>
Date: 2025-08-02 15:37:34
Also in:
linux-fsdevel, lkml
On 8/1/25 5:47 PM, Keith Busch wrote:
From: Keith Busch <kbusch@kernel.org> In furthering direct IO use from user space buffers without bouncing to align to unnecessary kernel software constraints, this series removes the requirement that io vector lengths align to the logical block size. The downside (if want to call it that) is that mis-aligned io vectors are caught further down the block stack rather than closer to the syscall.
That's not a downside imho, it's much nicer to have the correct/expected case be fast, and catch the unexpected error case down the line when we have to iterate the vecs anyway. IOW, I love this patchset. I'll spend some time going over the details. Did you write some test cases for this?
This change also removes one walking of the io vector, so that's nice too. Keith Busch (7): block: check for valid bio while splitting block: align the bio after building it block: simplify direct io validity check iomap: simplify direct io validity check block: remove bdev_iter_is_aligned blk-integrity: use simpler alignment check iov_iter: remove iov_iter_is_aligned block/bio-integrity.c | 4 +- block/bio.c | 58 +++++++++++++++++--------- block/blk-merge.c | 5 +++ block/fops.c | 4 +- fs/iomap/direct-io.c | 3 +- include/linux/blkdev.h | 7 ---- include/linux/uio.h | 2 - lib/iov_iter.c | 95 ------------------------------------------ 8 files changed, 49 insertions(+), 129 deletions(-)
Now that's a beautiful diffstat. -- Jens Axboe