On Wed, Jan 22, 2025 at 5:28 PM Joanne Koong <joannelkoong@xxxxxxxxx> wrote: > > This patchset adds support for folios larger than one page size in FUSE. > This does not yet enable large folios, as that requires one last piece, which > is for writeback to support large folios. Large folios for writeback will be > done separately in a future patchset. Please see this [1] for more details, as > well as benchmarks we can expect from enabling large folios. > > [1] https://lore.kernel.org/linux-fsdevel/CAJnrk1a8fP7JQRWNhq7uvM=k=RbKrW+V9bOj1CQo=v4ZoNGQ3w@xxxxxxxxxxxxxx/ > > Changelog: > v3: > https://lore.kernel.org/linux-fsdevel/20241213221818.322371-1-joannelkoong@xxxxxxxxx/ > v3 -> v4: > * Add Jeff's reviewed-bys > * Drop writeback large folios changes, drop turning large folios on. These > will be part of a separate future patchset > > v2: > https://lore.kernel.org/linux-fsdevel/20241125220537.3663725-1-joannelkoong@xxxxxxxxx/ > v2 -> v3: > * Fix direct io parsing to check each extracted page instead of assuming all > pages in a large folio will be used (Matthew) > > v1: > https://lore.kernel.org/linux-fsdevel/20241109001258.2216604-1-joannelkoong@xxxxxxxxx/ > v1 -> v2: > * Change naming from "non-writeback write" to "writethrough write" > * Fix deadlock for writethrough writes by calling fault_in_iov_iter_readable() > * first > before __filemap_get_folio() (Josef) > * For readahead, retain original folio_size() for descs.length (Josef) > * Use folio_zero_range() api in fuse_copy_folio() (Josef) > * Add Josef's reviewed-bys > > Joanne Koong (10): > fuse: support copying large folios > fuse: support large folios for retrieves > fuse: refactor fuse_fill_write_pages() > fuse: support large folios for writethrough writes > fuse: support large folios for folio reads > fuse: support large folios for symlinks > fuse: support large folios for stores > fuse: support large folios for queued writes > fuse: support large folios for readahead > fuse: optimize direct io large folios processing > > fs/fuse/dev.c | 126 +++++++++++++++++++++-------------------- > fs/fuse/dir.c | 8 +-- > fs/fuse/file.c | 130 +++++++++++++++++++++++++++++-------------- > fs/fuse/fuse_dev_i.h | 2 +- > 4 files changed, 156 insertions(+), 110 deletions(-) > Hi Miklos, Does this patchset seem acceptable to you? This patchset sets up everything except for writeback to support large folios. The writeback piece and actually flipping the switch to turn on large folios will be its own separate future patchset. Thanks, Joanne > -- > 2.43.5 >