On 8/1/25 5:47 PM, Keith Busch wrote: > From: Keith Busch <kbusch@xxxxxxxxxx> > > 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