Linux XFS filesystem development
 help / color / mirror / Atom feed
* [RFC PATCH v1 0/3] iomap: convert to in-iter ->iomap_next() model
@ 2026-06-25  2:47 Joanne Koong
  2026-06-25  2:47 ` [RFC PATCH v1 1/3] iomap: add ->iomap_next() and iomap_process() helper Joanne Koong
                   ` (4 more replies)
  0 siblings, 5 replies; 19+ messages in thread
From: Joanne Koong @ 2026-06-25  2:47 UTC (permalink / raw)
  To: hch, willy, djwong; +Cc: linux-fsdevel, linux-xfs

This is submitted to get some feedback on what converting to an in-iter
->iomap_next() model would look like. It revives Matthew's previous RFC [1],
which had the same goal.

The series merges ->iomap_begin()/->iomap_end() into a single ->iomap_next()
callback (patches 1-2) and shows an example of devirtualizing the callbacks on
a hot path so the indirect call through struct iomap_ops is avoided (patch 3).
This series is on top of vfs.all (commit e7a6d06e3c3e8).

A few questions:
* is this roughly the in-iter direction you had in mind?
* is removing the indirect call still worth it? My understanding is that
  indirect calls are cheap on modern eIBRS hardware and the conversion adds
  some per-filesystem boilerplate, so I'm unsure if it carries its weight. If
  not, do you think the in-iter model is still worth having on its own?

Thanks,
Joanne

[1] https://lore.kernel.org/linux-fsdevel/20200728173216.7184-1-willy@infradead.org/T/#u

Joanne Koong (3):
  iomap: add ->iomap_next() and iomap_process() helper
  xfs: convert read and buffered write iomap ops to ->iomap_next()
  xfs: example of devirtualizing buffered write iomap callbacks

 fs/iomap/buffered-io.c |  3 +-
 fs/iomap/iter.c        | 99 ++++++++++++++++++++++++++++++++++--------
 fs/xfs/xfs_file.c      | 26 +++++++++--
 fs/xfs/xfs_iomap.c     | 29 ++++++++++---
 fs/xfs/xfs_iomap.h     |  7 +++
 include/linux/iomap.h  | 98 ++++++++++++++++++++++++++++++++++++++---
 6 files changed, 231 insertions(+), 31 deletions(-)

-- 
2.52.0


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

end of thread, other threads:[~2026-06-26  5:38 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-25  2:47 [RFC PATCH v1 0/3] iomap: convert to in-iter ->iomap_next() model Joanne Koong
2026-06-25  2:47 ` [RFC PATCH v1 1/3] iomap: add ->iomap_next() and iomap_process() helper Joanne Koong
2026-06-25 12:56   ` Christoph Hellwig
2026-06-25 21:03     ` Joanne Koong
2026-06-26  5:12       ` Christoph Hellwig
2026-06-25  2:47 ` [RFC PATCH v1 2/3] xfs: convert read and buffered write iomap ops to ->iomap_next() Joanne Koong
2026-06-25  2:47 ` [RFC PATCH v1 3/3] xfs: example of devirtualizing buffered write iomap callbacks Joanne Koong
2026-06-25 13:00   ` Christoph Hellwig
2026-06-25 20:46     ` Joanne Koong
2026-06-25  3:25 ` [RFC PATCH v1 0/3] iomap: convert to in-iter ->iomap_next() model Gao Xiang
2026-06-25  3:37   ` Gao Xiang
2026-06-25 13:02   ` Christoph Hellwig
2026-06-25 13:21     ` Gao Xiang
2026-06-25 21:33       ` Joanne Koong
2026-06-26  2:22         ` Gao Xiang
2026-06-26  5:10           ` Christoph Hellwig
2026-06-26  5:35             ` Gao Xiang
2026-06-26  5:38               ` Christoph Hellwig
2026-06-25 13:03 ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox