All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/9] f2fs: use iomap for direct I/O
@ 2021-07-16 14:39 ` Eric Biggers
  0 siblings, 0 replies; 66+ messages in thread
From: Eric Biggers @ 2021-07-16 14:39 UTC (permalink / raw)
  To: linux-f2fs-devel, Jaegeuk Kim, Chao Yu
  Cc: linux-fsdevel, linux-xfs, Satya Tangirala, Changheun Lee,
	Matthew Bobrowski

This series makes f2fs implement direct I/O using iomap_dio_rw() instead
of __blockdev_direct_IO().  In order to do this, it adds f2fs_iomap_ops,
since this is the first use of iomap in f2fs.

The iomap direct I/O implementation is more efficient than the
fs/direct-io.c implementation.  Switching to iomap also avoids the need
to add new features and optimizations to the old implementation.  E.g.,
see https://lore.kernel.org/r/20200710053406.GA25530@infradead.org and
https://lore.kernel.org/r/YKJBWClI7sUeABDs@infradead.org.

In general, this series preserves existing f2fs behavior (such as the
conditions for falling back to buffered I/O) and is only an
implementation change.

Patches 1-5 contain cleanups and fixes for f2fs_file_write_iter().
Patch 6 adds f2fs_iomap_ops, patch 7 and 8 switch direct I/O reads and
writes to iomap, and patch 9 removes obsoleted code.

Careful review is appreciated, as I'm not an expert in all areas here.

This series has been tested with xfstests by running 'gce-xfstests -c
f2fs -g auto -X generic/017' with and without this series; no
regressions were seen.  (Some tests fail both before and after.
generic/017 hangs both before and after, so it had to be excluded.)

This series applies to v5.14-rc1.

Eric Biggers (9):
  f2fs: make f2fs_write_failed() take struct inode
  f2fs: remove allow_outplace_dio()
  f2fs: rework write preallocations
  f2fs: reduce indentation in f2fs_file_write_iter()
  f2fs: fix the f2fs_file_write_iter tracepoint
  f2fs: implement iomap operations
  f2fs: use iomap for direct I/O reads
  f2fs: use iomap for direct I/O writes
  f2fs: remove f2fs_direct_IO()

 fs/f2fs/Kconfig             |   1 +
 fs/f2fs/data.c              | 286 +++++++------------------
 fs/f2fs/f2fs.h              |  29 +--
 fs/f2fs/file.c              | 416 +++++++++++++++++++++++++++++-------
 include/trace/events/f2fs.h |  12 +-
 5 files changed, 421 insertions(+), 323 deletions(-)


base-commit: e73f0f0ee7541171d89f2e2491130c7771ba58d3
-- 
2.32.0


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

end of thread, other threads:[~2021-07-29  0:26 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-16 14:39 [PATCH 0/9] f2fs: use iomap for direct I/O Eric Biggers
2021-07-16 14:39 ` [f2fs-dev] " Eric Biggers
2021-07-16 14:39 ` [PATCH 1/9] f2fs: make f2fs_write_failed() take struct inode Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-25 10:00   ` Chao Yu
2021-07-25 10:00     ` [f2fs-dev] " Chao Yu
2021-07-16 14:39 ` [PATCH 2/9] f2fs: remove allow_outplace_dio() Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-19  8:41   ` Christoph Hellwig
2021-07-19  8:41     ` [f2fs-dev] " Christoph Hellwig
2021-07-16 14:39 ` [PATCH 3/9] f2fs: rework write preallocations Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-25 10:50   ` Chao Yu
2021-07-25 10:50     ` [f2fs-dev] " Chao Yu
2021-07-25 17:57     ` Eric Biggers
2021-07-25 17:57       ` [f2fs-dev] " Eric Biggers
2021-07-27  2:00       ` Jaegeuk Kim
2021-07-27  2:00         ` [f2fs-dev] " Jaegeuk Kim
2021-07-27  3:23         ` Chao Yu
2021-07-27  3:23           ` [f2fs-dev] " Chao Yu
2021-07-27  7:38           ` Eric Biggers
2021-07-27  7:38             ` [f2fs-dev] " Eric Biggers
2021-07-27  8:30             ` Chao Yu
2021-07-27  8:30               ` [f2fs-dev] " Chao Yu
2021-07-27 15:33               ` Darrick J. Wong
2021-07-27 15:33                 ` [f2fs-dev] " Darrick J. Wong
2021-07-29  0:26                 ` Chao Yu
2021-07-29  0:26                   ` [f2fs-dev] " Chao Yu
2021-07-28  2:29         ` Jaegeuk Kim
2021-07-28  2:29           ` [f2fs-dev] " Jaegeuk Kim
2021-07-25 15:35   ` Jaegeuk Kim
2021-07-25 15:35     ` [f2fs-dev] " Jaegeuk Kim
2021-07-25 15:47     ` Jaegeuk Kim
2021-07-25 15:47       ` [f2fs-dev] " Jaegeuk Kim
2021-07-25 18:01       ` Eric Biggers
2021-07-25 18:01         ` [f2fs-dev] " Eric Biggers
2021-07-26 19:04         ` Jaegeuk Kim
2021-07-26 19:04           ` [f2fs-dev] " Jaegeuk Kim
2021-07-16 14:39 ` [PATCH 4/9] f2fs: reduce indentation in f2fs_file_write_iter() Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-16 14:39 ` [PATCH 5/9] f2fs: fix the f2fs_file_write_iter tracepoint Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-16 14:39 ` [PATCH 6/9] f2fs: implement iomap operations Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-19  8:59   ` Christoph Hellwig
2021-07-19  8:59     ` [f2fs-dev] " Christoph Hellwig
2021-07-22 20:47     ` Jaegeuk Kim
2021-07-22 20:47       ` [f2fs-dev] " Jaegeuk Kim
2021-07-22 20:49       ` Jaegeuk Kim
2021-07-22 20:49         ` [f2fs-dev] " Jaegeuk Kim
2021-07-22 20:54       ` Eric Biggers
2021-07-22 20:54         ` [f2fs-dev] " Eric Biggers
2021-07-22 21:57         ` Jaegeuk Kim
2021-07-22 21:57           ` [f2fs-dev] " Jaegeuk Kim
2021-07-23  1:52     ` Eric Biggers
2021-07-23  1:52       ` [f2fs-dev] " Eric Biggers
2021-07-23  5:00       ` Christoph Hellwig
2021-07-23  5:00         ` [f2fs-dev] " Christoph Hellwig
2021-07-23  8:05         ` Eric Biggers
2021-07-23  8:05           ` [f2fs-dev] " Eric Biggers
2021-07-16 14:39 ` [PATCH 7/9] f2fs: use iomap for direct I/O reads Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-16 14:39 ` [PATCH 8/9] f2fs: use iomap for direct I/O writes Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers
2021-07-16 14:39 ` [PATCH 9/9] f2fs: remove f2fs_direct_IO() Eric Biggers
2021-07-16 14:39   ` [f2fs-dev] " Eric Biggers

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.