[PATCH v1 0/8] fuse: use iomap for buffered writes + writeback

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

 



This series adds fuse iomap support for buffered writes and dirty folio
writeback. This is needed so that granular dirty tracking can be used in
fuse when large folios are enabled so that if only a few bytes in a large
folio are dirty, only a smaller portion is written out instead of the entire
folio.

In order to do so, a new iomap type, IOMAP_IN_MEM, is added that is more
generic and does not depend on the block layer. The parts of iomap buffer io
that depend on bios and CONFIG_BLOCK is moved to a separate file,
buffered-io-bio.c, in order to allow filesystems that do not have CONFIG_BLOCK
set to use IOMAP_IN_MEM buffered io.

This series was run through fstests with large folios enabled and through
some quick sanity checks on passthrough_hp with a) writing 1 GB in 1 MB chunks
and then going back and dirtying a few bytes in each chunk and b) writing 50 MB
in 1 MB chunks and going through dirtying the entire chunk for several runs.
a) showed about a 40% speedup increase with iomap support added and b) showed
roughly the same performance.

This patchset does not enable large folios yet. That will be sent out in a
separate future patchset.


Thanks,
Joanne

Joanne Koong (8):
  iomap: move buffered io bio logic into separate file
  iomap: add IOMAP_IN_MEM iomap type
  iomap: add buffered write support for IOMAP_IN_MEM iomaps
  iomap: add writepages support for IOMAP_IN_MEM iomaps
  iomap: add iomap_writeback_dirty_folio()
  fuse: use iomap for buffered writes
  fuse: use iomap for writeback
  fuse: use iomap for folio laundering

 fs/fuse/Kconfig            |   1 +
 fs/fuse/file.c             | 304 ++++++++++++---------------
 fs/iomap/Makefile          |   5 +-
 fs/iomap/buffered-io-bio.c | 279 +++++++++++++++++++++++++
 fs/iomap/buffered-io.c     | 410 +++++++++----------------------------
 fs/iomap/internal.h        |  46 +++++
 include/linux/iomap.h      |  32 ++-
 7 files changed, 586 insertions(+), 491 deletions(-)
 create mode 100644 fs/iomap/buffered-io-bio.c

-- 
2.47.1





[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux