[GIT PULL] vfs iomap

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


Hey Linus,

/* Summary */
This contains a few updates for the iomap code:

* Restore read-write hints in struct bio through the bi_write_hint member for
  the sake of UFS devices in mobile applications. This can result in up to 40%
  lower write amplification in UFS devices. The patch series that builds on
  this will be coming in via the SCSI maintainers. (Bart)

* Overhaul the iomap writeback code. Afterwards ->map_blocks() is able to map
  multiple blocks at once as long as they're in the same folio. This
  reduces CPU usage for buffered write workloads on e.g., xfs on systems
  with lots of cores. (Christoph)

* Record processed bytes in iomap_iter() trace event. (Kassey)

* Extend iomap_writepage_map() trace event after Christoph's ->map_block()
  changes to map mutliple blocks at once. (Zhang)

/* Testing */
clang: Debian clang version 16.0.6 (19)
gcc: (Debian 13.2.0-7) 13.2.0

All patches are based on v6.8-rc1 and have been sitting in linux-next.
No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with other trees

[1] linux-next: manual merge of the scsi-mkp tree with the vfs-brauner tree

[2] There's a merge conflict between the vfs-6.9-misc pull request sent as
    that can be resolved like this:

    diff --cc include/linux/fs.h
    index 2ba751d097c1,bdabda5dc364..000000000000
    --- a/include/linux/fs.h
    +++ b/include/linux/fs.h
    @@@ -43,7 -43,7 +43,8 @@@
      #include <linux/cred.h>
      #include <linux/mnt_idmapping.h>
      #include <linux/slab.h>
     +#include <linux/maple_tree.h>
    + #include <linux/rw_hint.h>
      #include <asm/byteorder.h>
      #include <uapi/linux/fs.h>

Merge conflicts with mainline

The following changes since commit 6613476e225e090cc9aad49be7fa504e290dd33d:

  Linux 6.8-rc1 (2024-01-21 14:11:32 -0800)

are available in the Git repository at:

  git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.9.iomap

for you to fetch changes up to 86835c39e08e6d92a9d66d51277b2676bc659743:

  Merge tag 'vfs-6.9.rw_hint' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs (2024-03-04 18:35:21 +0100)

Please consider pulling these changes from the signed vfs-6.9.iomap tag.



Bart Van Assche (6):
      fs: Fix rw_hint validation
      fs: Verify write lifetime constants at compile time
      fs: Split fcntl_rw_hint()
      fs: Move enum rw_hint into a new header file
      fs: Propagate write hints to the struct block_device inode
      block, fs: Restore the per-bio/request data lifetime fields

Christian Brauner (1):
      Merge tag 'vfs-6.9.rw_hint' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs

Christoph Hellwig (14):
      iomap: clear the per-folio dirty bits on all writeback failures
      iomap: treat inline data in iomap_writepage_map as an I/O error
      iomap: move the io_folios field out of struct iomap_ioend
      iomap: move the PF_MEMALLOC check to iomap_writepages
      iomap: factor out a iomap_writepage_handle_eof helper
      iomap: move all remaining per-folio logic into iomap_writepage_map
      iomap: clean up the iomap_alloc_ioend calling convention
      iomap: move the iomap_sector sector calculation out of iomap_add_to_ioend
      iomap: don't chain bios
      iomap: only call mapping_set_error once for each failed bio
      iomap: factor out a iomap_writepage_map_block helper
      iomap: submit ioends immediately
      iomap: map multiple blocks at a time
      iomap: pass the length of the dirty region to ->map_blocks

Kassey Li (1):
      iomap: Add processed for iomap_iter

Zhang Yi (1):
      iomap: add pos and dirty_len into trace_iomap_writepage_map

 block/bio.c                 |   2 +
 block/blk-crypto-fallback.c |   1 +
 block/blk-merge.c           |   8 +
 block/blk-mq.c              |   2 +
 block/bounce.c              |   1 +
 block/fops.c                |   5 +-
 fs/buffer.c                 |  12 +-
 fs/direct-io.c              |   2 +
 fs/f2fs/f2fs.h              |   1 +
 fs/fcntl.c                  |  64 +++--
 fs/gfs2/bmap.c              |   2 +-
 fs/inode.c                  |   1 +
 fs/iomap/buffered-io.c      | 579 ++++++++++++++++++++++----------------------
 fs/iomap/direct-io.c        |   1 +
 fs/iomap/trace.h            |  48 +++-
 fs/mpage.c                  |   1 +
 fs/xfs/xfs_aops.c           |   9 +-
 fs/zonefs/file.c            |   3 +-
 include/linux/blk-mq.h      |   2 +
 include/linux/blk_types.h   |   2 +
 include/linux/fs.h          |  16 +-
 include/linux/iomap.h       |  19 +-
 include/linux/rw_hint.h     |  24 ++
 23 files changed, 455 insertions(+), 350 deletions(-)
 create mode 100644 include/linux/rw_hint.h

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux