* [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* [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
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-05-10 11:45 [GIT PULL] vfs iomap Christian Brauner
2024-05-13 19:38 ` pr-tracker-bot
-- strict thread matches above, loose matches on Subject: below --
2025-03-22 10:14 Christian Brauner
2025-03-24 21:01 ` pr-tracker-bot
2024-03-08 10:12 Christian Brauner
2024-03-11 18:33 ` 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).