Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-17916

Enable folio allocation support on the buffed io read/write path (BIO)

Details

    • Improvement
    • Resolution: Unresolved
    • Minor
    • Lustre 2.17.0
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      When support for folios are added to generic_perform_write() we can enable folio based allocations without re-writing the lustre i/o path to use iomap:

      https://www.spinics.net/lists/linux-nfs/msg104002.html
      Updated patch:
      https://lore.kernel.org/linux-fsdevel/20240527163616.1135968-2-hch@lst.de/
      Depends on (landed for v6.9):
      https://patchwork.kernel.org/project/linux-fsdevel/patch/20240521114939.2541461-1-xu.yang_2@nxp.com/

      This is tested for NFS
      https://www.spinics.net/lists/linux-nfs/msg104003.html

      suggesting this alone is enough for a 2x improvement in buffered i/o.

      Update lustre to use the folio allocation ie: __filemap_get_folio() instead of the grab_cache_page* family.

      Provide a __filemap_get_folio() implementation for compatibility with older kernels.

      Assuming no large regressions this should be available in kernel v6.11:
      Linux kernel commit: v6.10-rc7-2-g9aac777aaf945
      filemap: Convert generic_perform_write() to support large folios

      Attachments

        Issue Links

          Activity

            [LU-17916] Enable folio allocation support on the buffed io read/write path (BIO)

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58458
            Subject: LU-17916 osd: switch to struct folio
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 9f00105d639bea3d895ec72a6881484e723b37c2

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58458 Subject: LU-17916 osd: switch to struct folio Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 9f00105d639bea3d895ec72a6881484e723b37c2

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58457
            Subject: LU-17916 osp: switch to struct folio
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: ac80d564e9ad4ce2ab3d9f15f6ebb2ee29edd2d6

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58457 Subject: LU-17916 osp: switch to struct folio Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: ac80d564e9ad4ce2ab3d9f15f6ebb2ee29edd2d6

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58456
            Subject: LU-17916 osd-ldiskfs: switch to struct folio
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: d881fe29134c40990b92f22fc1d3696297a8e7fa

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58456 Subject: LU-17916 osd-ldiskfs: switch to struct folio Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: d881fe29134c40990b92f22fc1d3696297a8e7fa

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58275
            Subject: LU-17916 mdt: switch to struct folio
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 540da1549856a0d7fe86b3a14321af7f42830c4d

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58275 Subject: LU-17916 mdt: switch to struct folio Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 540da1549856a0d7fe86b3a14321af7f42830c4d

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58274
            Subject: LU-17916 quota: switch to struct folio
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 96b4e4d76b7abd7610230a7c61365c907c2344c5

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58274 Subject: LU-17916 quota: switch to struct folio Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 96b4e4d76b7abd7610230a7c61365c907c2344c5

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58247
            Subject: LU-17916 osc: switch to struct folio
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 5ff7d51d97ce0b9d602e52a8170865c15d7d5ddd

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58247 Subject: LU-17916 osc: switch to struct folio Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 5ff7d51d97ce0b9d602e52a8170865c15d7d5ddd

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58097
            Subject: LU-17916 llite: switch to struct folio
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 8d2836b0e47dff508e2616c33174015d22ed7349

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/58097 Subject: LU-17916 llite: switch to struct folio Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 8d2836b0e47dff508e2616c33174015d22ed7349

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57124
            Subject: LU-17916 osd-ldiskfs: folio write support
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 6e801a92fe25e729b097cdc3a42bc713a814530e

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/57124 Subject: LU-17916 osd-ldiskfs: folio write support Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 6e801a92fe25e729b097cdc3a42bc713a814530e

            "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/55982
            Subject: LU-17916 llite: large folio allocation option
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: e37acb2cadf176754fd03cda21953bccc222a24f

            gerrit Gerrit Updater added a comment - "Shaun Tancheff <shaun.tancheff@hpe.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/55982 Subject: LU-17916 llite: large folio allocation option Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: e37acb2cadf176754fd03cda21953bccc222a24f

            Tested with patched 6.6.13 kernel: https://github.com/stancheff/linux/tree/v6.6.13-3

            stancheff Shaun Tancheff added a comment - Tested with patched 6.6.13 kernel: https://github.com/stancheff/linux/tree/v6.6.13-3
            stancheff Shaun Tancheff added a comment - - edited

            Attached 0001-filemap-add-helper-mapping_max_folio_size.patch and 0002-filemap-Convert-generic_perform_write-to-support-lar.patch which can be applied to a 6.6 and later kernel to (safely) enable large folio support.

            NOTE: Kernels v6.9 and later already have 0001-filemap-add-helper-mapping_max_folio_size.patch

            stancheff Shaun Tancheff added a comment - - edited Attached 0001-filemap-add-helper-mapping_max_folio_size.patch and 0002-filemap-Convert-generic_perform_write-to-support-lar.patch which can be applied to a 6.6 and later kernel to (safely) enable large folio support. NOTE: Kernels v6.9 and later already have 0001-filemap-add-helper-mapping_max_folio_size.patch

            People

              stancheff Shaun Tancheff
              stancheff Shaun Tancheff
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: