linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] vfs iomap
@ 2024-03-08 10:12 Christian Brauner
  2024-03-11 18:33 ` pr-tracker-bot
  0 siblings, 1 reply; 6+ messages in thread
From: Christian Brauner @ 2024-03-08 10:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

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
    https://lore.kernel.org/linux-next/20240227153436.33b48d59@canb.auug.org.au

[2] There's a merge conflict between the vfs-6.9-misc pull request sent as
    https://lore.kernel.org/r/20240308-vfs-misc-a4e7c50ce769@brauner
    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@gitolite.kernel.org: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.

Thanks!
Christian

----------------------------------------------------------------
vfs-6.9.iomap

----------------------------------------------------------------
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

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [GIT PULL] vfs iomap
@ 2024-05-10 11:45 Christian Brauner
  2024-05-13 19:38 ` pr-tracker-bot
  0 siblings, 1 reply; 6+ messages in thread
From: Christian Brauner @ 2024-05-10 11:45 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */
This contains a few cleanups to the iomap code. Nothing particularly
stands out.

/* Testing */
clang: Debian clang version 16.0.6 (26)
gcc: (Debian 13.2.0-24)

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

/* Conflicts */

No known conflicts.

The following changes since commit 4cece764965020c22cff7665b18a012006359095:

  Linux 6.9-rc1 (2024-03-24 14:10:05 -0700)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.10.iomap

for you to fetch changes up to e1f453d4336d5d7fbbd1910532201b4a07a20a5c:

  iomap: do some small logical cleanup in buffered write (2024-04-25 14:23:54 +0200)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.10.iomap

----------------------------------------------------------------
Christoph Hellwig (1):
      iomap: convert iomap_writepages to writeack_iter

Zhang Yi (5):
      iomap: drop the write failure handles when unsharing and zeroing
      iomap: don't increase i_size if it's not a write operation
      iomap: use a new variable to handle the written bytes in iomap_write_iter()
      iomap: make iomap_write_end() return a boolean
      iomap: do some small logical cleanup in buffered write

 fs/iomap/buffered-io.c | 119 +++++++++++++++++++++++++++----------------------
 1 file changed, 65 insertions(+), 54 deletions(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [GIT PULL] vfs iomap
@ 2025-03-22 10:14 Christian Brauner
  2025-03-24 21:01 ` pr-tracker-bot
  0 siblings, 1 reply; 6+ messages in thread
From: Christian Brauner @ 2025-03-22 10:14 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Christian Brauner, linux-fsdevel, linux-kernel

Hey Linus,

/* Summary */

This contains the iomap changes for this cycle:

- Allow the filesystem to submit the writeback bios.

  - Allow the filsystem to track completions on a per-bio bases instead
    of the entire I/O.

  - Change writeback_ops so that ->submit_bio can be done by the filesystem.

  - A new ANON_WRITE flag for writes that don't have a block number
    assigned to them at the iomap level leaving the filesystem to do
    that work in the submission handler.


- Incremental iterator advance

  The folio_batch support for zero range where the filesystem provides a
  batch of folios to process that might not be logically continguous
  requires more flexibility than the current offset based iteration
  currently offers.

  Update all iomap operations to advance the iterator within the
  operation and thus remove the need to advance from the core iomap
  iterator.

- Make buffered writes work with RWF_DONTCACHE

  If RWF_DONTCACHE is set for a write, mark the folios being written as
  uncached. On writeback completion the pages will be dropped.

- Introduce infrastructure for large atomic writes

  This will eventually be used by xfs and ext4.

/* Testing */

gcc version 14.2.0 (Debian 14.2.0-6)
Debian clang version 16.0.6 (27+b1)

No build failures or warnings were observed.

/* Conflicts */

Merge conflicts with mainline
=============================

No known conflicts.

Merge conflicts with other trees
================================

No known conflicts.

The following changes since commit 2014c95afecee3e76ca4a56956a936e23283f05b:

  Linux 6.14-rc1 (2025-02-02 15:39:26 -0800)

are available in the Git repository at:

  git@gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs tags/vfs-6.15-rc1.iomap

for you to fetch changes up to c84042b32f275dee8e3f10cdd8973e2e879f1fc8:

  Merge patch series "further iomap large atomic writes changes" (2025-03-20 15:16:08 +0100)

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

Thanks!
Christian

----------------------------------------------------------------
vfs-6.15-rc1.iomap

----------------------------------------------------------------
Brian Foster (22):
      iomap: factor out iomap length helper
      iomap: split out iomap check and reset logic from iter advance
      iomap: refactor iomap_iter() length check and tracepoint
      iomap: lift error code check out of iomap_iter_advance()
      iomap: lift iter termination logic from iomap_iter_advance()
      iomap: export iomap_iter_advance() and return remaining length
      iomap: support incremental iomap_iter advances
      iomap: advance the iter directly on buffered writes
      iomap: advance the iter directly on unshare range
      iomap: advance the iter directly on zero range
      iomap: advance the iter directly on buffered read
      iomap: advance the iter on direct I/O
      iomap: convert misc simple ops to incremental advance
      dax: advance the iomap_iter in the read/write path
      dax: push advance down into dax_iomap_iter() for read and write
      dax: advance the iomap_iter on zero range
      dax: advance the iomap_iter on unshare range
      dax: advance the iomap_iter on dedupe range
      dax: advance the iomap_iter on pte and pmd faults
      iomap: remove unnecessary advance from iomap_iter()
      iomap: rename iomap_iter processed field to status
      iomap: introduce a full map advance helper

Christian Brauner (7):
      Merge patch series "iomap: allow the file system to submit the writeback bios"
      Merge patch series "iomap: incremental per-operation iter advance"
      Merge patch series "iomap: incremental advance conversion -- phase 2"
      Merge patch series "iomap: make buffered writes work with RWF_DONTCACHE"
      Merge branch 'vfs-6.15.shared.iomap' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs
      Merge patch series "iomap preliminaries for large atomic write for xfs with CoW"
      Merge patch series "further iomap large atomic writes changes"

Christoph Hellwig (11):
      iomap: allow the file system to submit the writeback bios
      iomap: simplify io_flags and io_type in struct iomap_ioend
      iomap: add a IOMAP_F_ANON_WRITE flag
      iomap: split bios to zone append limits in the submission handlers
      iomap: move common ioend code to ioend.c
      iomap: factor out a iomap_dio_done helper
      iomap: optionally use ioends for direct I/O
      iomap: add a io_private field to struct iomap_ioend
      iomap: pass private data to iomap_page_mkwrite
      iomap: pass private data to iomap_zero_range
      iomap: pass private data to iomap_truncate_page

Gao Xiang (1):
      iomap: fix inline data on buffered read

Jens Axboe (2):
      iomap: make buffered writes work with RWF_DONTCACHE
      xfs: flag as supporting FOP_DONTCACHE

John Garry (5):
      iomap: Rename IOMAP_ATOMIC -> IOMAP_ATOMIC_HW
      iomap: Support SW-based atomic writes
      iomap: inline iomap_dio_bio_opflags()
      iomap: comment on atomic write checks in iomap_dio_bio_iter()
      iomap: rework IOMAP atomic flags

Ritesh Harjani (IBM) (1):
      iomap: Lift blocksize restriction on atomic writes

 Documentation/filesystems/iomap/design.rst     |   9 +
 Documentation/filesystems/iomap/operations.rst |  42 ++-
 fs/dax.c                                       | 111 ++++----
 fs/ext4/inode.c                                |   4 +
 fs/gfs2/bmap.c                                 |   3 +-
 fs/iomap/Makefile                              |   1 +
 fs/iomap/buffered-io.c                         | 356 +++++++++----------------
 fs/iomap/direct-io.c                           | 279 ++++++++++---------
 fs/iomap/fiemap.c                              |  21 +-
 fs/iomap/internal.h                            |  10 +
 fs/iomap/ioend.c                               | 216 +++++++++++++++
 fs/iomap/iter.c                                |  97 ++++---
 fs/iomap/seek.c                                |  16 +-
 fs/iomap/swapfile.c                            |   7 +-
 fs/iomap/trace.h                               |   8 +-
 fs/xfs/xfs_aops.c                              |  25 +-
 fs/xfs/xfs_file.c                              |   6 +-
 fs/xfs/xfs_iomap.c                             |   8 +-
 fs/zonefs/file.c                               |   2 +-
 include/linux/iomap.h                          | 116 ++++++--
 20 files changed, 816 insertions(+), 521 deletions(-)
 create mode 100644 fs/iomap/internal.h
 create mode 100644 fs/iomap/ioend.c

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

end of thread, other threads:[~2025-03-24 21:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-08 10:12 [GIT PULL] vfs iomap Christian Brauner
2024-03-11 18:33 ` pr-tracker-bot
  -- strict thread matches above, loose matches on Subject: below --
2024-05-10 11:45 Christian Brauner
2024-05-13 19:38 ` pr-tracker-bot
2025-03-22 10:14 Christian Brauner
2025-03-24 21:01 ` pr-tracker-bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).