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

        Activity

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

          Attached kernel-5.14.0-503.33.1.ldiskfs.el9_5.spec which adds attached patches 0001-filemap-Convert-generic_perform_write-to-support-lar.patch and 0001-iov_iter-Add-copy_folio_from_iter_atomic.patch to enable large folio support in el9.5 (these patches can also be applied to el9.6)

          stancheff Shaun Tancheff added a comment - Attached kernel-5.14.0-503.33.1.ldiskfs.el9_5.spec which adds attached patches 0001-filemap-Convert-generic_perform_write-to-support-lar.patch and 0001-iov_iter-Add-copy_folio_from_iter_atomic.patch to enable large folio support in el9.5 (these patches can also be applied to el9.6)

          This is pretty young stuff (fs/netfs) (introduced: v5.12-rc4-40-g3a5829fefd3b) so means that we would have to backport the whole thing for older kernels?

          netfs maps functionally to cl_page et. al. from my brief reading so that is not a small change at first glance

          stancheff Shaun Tancheff added a comment - This is pretty young stuff (fs/netfs) (introduced: v5.12-rc4-40-g3a5829fefd3b) so means that we would have to backport the whole thing for older kernels? netfs maps functionally to cl_page et. al. from my brief reading so that is not a small change at first glance
          timday Tim Day added a comment -

          netfs would still require the folio conversion and most (if not all) of Shaun's patches. But using netfs could save us some amount of effort. Something worth looking at: https://docs.kernel.org/filesystems/netfs_library.html.

          timday Tim Day added a comment - netfs would still require the folio conversion and most (if not all) of Shaun's patches. But using netfs could save us some amount of effort. Something worth looking at: https://docs.kernel.org/filesystems/netfs_library.html .

          Shaun last week Tim Day and I went to the Linux summit involving file systems and we had a discussion about instead of doing an folio abstract which is a large work load to use instead the netfs abstract that David Howells is working on. David would be greatly willing to help out with this work.

          simmonsja James A Simmons added a comment - Shaun last week Tim Day and I went to the Linux summit involving file systems and we had a discussion about instead of doing an folio abstract which is a large work load to use instead the netfs abstract that David Howells is working on. David would be greatly willing to help out with this work.

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

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

          "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

          People

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

            Dates

              Created:
              Updated: