All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv4 0/9] direct io dma alignment
@ 2022-05-26  1:06 Keith Busch
  2022-05-26  1:06 ` [PATCHv4 1/9] block: fix infiniate loop for invalid zone append Keith Busch
                   ` (8 more replies)
  0 siblings, 9 replies; 29+ messages in thread
From: Keith Busch @ 2022-05-26  1:06 UTC (permalink / raw)
  To: linux-fsdevel, linux-block
  Cc: axboe, Kernel Team, hch, bvanassche, damien.lemoal, ebiggers,
	pankydev8, Keith Busch

From: Keith Busch <kbusch@kernel.org>

This is mostly the same as v3, but with more code comments, prep
patches, replace '9' with 'SECTOR_SHIFT', and added reviews.

The biggest thing is I brought fs support back in the last patch.

For testing, I used 'fio', which has an 'iomem_align' parameter that can
force arbitrary memory offsets, even with direct-io. I created two data
integrity verifying profiles: one for raw block, the other for
filesystems, and ran each of them on two nvme namespaces. One namespace
was formatted 512b, the other was 4k.

The profile has different jobs: one smaller transfers, and one larger.
This to exercise both the simple and normal direct io cases, as well as
bio_split() conditions.

For filesystems testing, I used xfs, ext4 and btrfs to represent iomap,
and just ext2 for the older direct io. Note, btrfs falls back to
buffered anyway (see check_direct_IO()), so btrfs was essentially not
testing the direct io path.

Here is an example of one of the profiles for the raw block test:

  [global]
  filename=/dev/nvme0n1
  ioengine=io_uring
  verify=crc32c
  rw=randwrite
  iodepth=64
  direct=1

  [small]
  stonewall
  bsrange=4k-64k
  iomem_align=4

  [large]
  stonewall
  bsrange=512k-4M
  iomem_align=100

Keith Busch (9):
  block: fix infiniate loop for invalid zone append
  block/bio: remove duplicate append pages code
  block: export dma_alignment attribute
  block: introduce bdev_dma_alignment helper
  block: add a helper function for dio alignment
  block/merge: count bytes instead of sectors
  block/bounce: count bytes instead of sectors
  block: relax direct io memory alignment
  fs: add support for dma aligned direct-io

 Documentation/ABI/stable/sysfs-block |   9 +++
 block/bio.c                          | 117 +++++++++++++--------------
 block/blk-merge.c                    |  41 ++++++----
 block/blk-sysfs.c                    |   7 ++
 block/bounce.c                       |  12 ++-
 block/fops.c                         |  40 ++++++---
 fs/direct-io.c                       |  11 ++-
 fs/iomap/direct-io.c                 |   3 +-
 include/linux/blkdev.h               |   5 ++
 9 files changed, 146 insertions(+), 99 deletions(-)

-- 
2.30.2


^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2022-05-31  6:30 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-26  1:06 [PATCHv4 0/9] direct io dma alignment Keith Busch
2022-05-26  1:06 ` [PATCHv4 1/9] block: fix infiniate loop for invalid zone append Keith Busch
2022-05-26  1:48   ` Damien Le Moal
2022-05-31  6:19   ` Christoph Hellwig
2022-05-26  1:06 ` [PATCHv4 2/9] block/bio: remove duplicate append pages code Keith Busch
2022-05-26  1:06 ` [PATCHv4 3/9] block: export dma_alignment attribute Keith Busch
2022-05-26  7:30   ` Eric Biggers
2022-05-26  1:06 ` [PATCHv4 4/9] block: introduce bdev_dma_alignment helper Keith Busch
2022-05-26  1:06 ` [PATCHv4 5/9] block: add a helper function for dio alignment Keith Busch
2022-05-26  1:54   ` Damien Le Moal
2022-05-31  6:22     ` Christoph Hellwig
2022-05-26  1:06 ` [PATCHv4 6/9] block/merge: count bytes instead of sectors Keith Busch
2022-05-26  1:57   ` Damien Le Moal
2022-05-31  6:25   ` Christoph Hellwig
2022-05-26  1:06 ` [PATCHv4 7/9] block/bounce: " Keith Busch
2022-05-26  1:58   ` Damien Le Moal
2022-05-30 15:08   ` Pankaj Raghav
2022-05-31  6:26   ` Christoph Hellwig
2022-05-26  1:06 ` [PATCHv4 8/9] block: relax direct io memory alignment Keith Busch
2022-05-26  2:03   ` Damien Le Moal
2022-05-26  7:29   ` Eric Biggers
2022-05-26 13:50     ` Keith Busch
2022-05-26 18:13       ` Eric Biggers
2022-05-26 18:55         ` Keith Busch
2022-05-26 20:32           ` Keith Busch
2022-05-31  6:30             ` Christoph Hellwig
2022-05-26  1:06 ` [PATCHv4 9/9] fs: add support for dma aligned direct-io Keith Busch
2022-05-26  2:01   ` Damien Le Moal
2022-05-31  6:29   ` Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.