[PATCH v2 00/14] f2fs: support & optimize large folios for writable files

Nanzhe Zhao posted 14 patches 1 week, 3 days ago
Documentation/filesystems/f2fs.rst |   10 +
fs/f2fs/checkpoint.c               |    2 +
fs/f2fs/compress.c                 |    3 +
fs/f2fs/data.c                     | 1221 +++++++++++++++++++++++++---
fs/f2fs/f2fs.h                     |  105 ++-
fs/f2fs/file.c                     |  229 ++++--
fs/f2fs/gc.c                       |   32 +-
fs/f2fs/inline.c                   |    7 +
fs/f2fs/inode.c                    |    4 +-
fs/f2fs/namei.c                    |    1 +
fs/f2fs/node.c                     |    2 +
fs/f2fs/segment.c                  |    6 +-
12 files changed, 1404 insertions(+), 218 deletions(-)
[PATCH v2 00/14] f2fs: support & optimize large folios for writable files
Posted by Nanzhe Zhao 1 week, 3 days ago
This series supports large folios for most readable/writable files
in buffered I/O paths, including normal files, block-layer encrypted
files, and atomic files except for inline-data files, compressed files,
and quota files.

It also extends f2fs_folio_state to coexist with f2fs page-private
flags and to handle large folio write path and partial truncate of
large folios correctly.

Benchmark details can be found in the RFC v2 cover letter [1].

[1] https://lore.kernel.org/r/20260622160830.324455-1-zhaonanzhe@xiaomi.com

Changes in v2:
- Addressed most of Chao's and Daeho's review comments.
- Updated docs for compress policy with large folios.
- Link to v1: https://lore.kernel.org/r/20260826082641.2007658-1-zhaonanzhe@xiaomi.com

Many thanks to Chao and Daeho for your extensive reviews and valuable
suggestions!

Nanzhe Zhao (14):
  f2fs: extend folio state for large folio write path
  f2fs: carry subpage offset and count in write IO
  f2fs: support regular file buffered writes on large folios
  f2fs: support atomic file large folios buffered write
  f2fs: support large folio writeback
  f2fs: prepare mmap write faults for large folios
  f2fs: make GC migration large-folio aware
  f2fs: optimize small block size large folio read
  f2fs: support partial uptodate large folio read
  f2fs: handle partial truncate of large folio dirty subpages
  f2fs: fix zeroing paths for large folios
  f2fs: handle block cloning within the same large folio
  f2fs: allow large folio support to writeable files
  f2fs: make compressed files compatible with large folio

 Documentation/filesystems/f2fs.rst |   10 +
 fs/f2fs/checkpoint.c               |    2 +
 fs/f2fs/compress.c                 |    3 +
 fs/f2fs/data.c                     | 1221 +++++++++++++++++++++++++---
 fs/f2fs/f2fs.h                     |  105 ++-
 fs/f2fs/file.c                     |  229 ++++--
 fs/f2fs/gc.c                       |   32 +-
 fs/f2fs/inline.c                   |    7 +
 fs/f2fs/inode.c                    |    4 +-
 fs/f2fs/namei.c                    |    1 +
 fs/f2fs/node.c                     |    2 +
 fs/f2fs/segment.c                  |    6 +-
 12 files changed, 1404 insertions(+), 218 deletions(-)

-- 
2.43.0