From: trondmy@kernel.org
To: linux-nfs@vger.kernel.org
Subject: [PATCH 00/17] Initial conversion of NFS basic I/O to use folios
Date: Sat, 7 Jan 2023 12:36:18 -0500 [thread overview]
Message-ID: <20230107173635.2025233-1-trondmy@kernel.org> (raw)
From: Trond Myklebust <trond.myklebust@hammerspace.com>
This set of patches represents an initial effort to convert the page
cache I/O in the NFS client to use native folio functionality. It should
allow the nfs_page structs and their helpers to carry folios (including
folios of order > 0) and to pass their data contents through to the RPC
layer.
Note that because O_DIRECT uses pages, we still need to support the
traditional page based I/O, and so the new struct nfs_page will carry
both types.
I did not touch the fscache code, but I expect that to be able to
continue to work with order 0 folios.
The plan is to merge this functionality with order 0 folios first, in
order to catch any regressions in existing functionality. Then we can
enable order n > 0 once we're happy about the stability (at least for
the non-fscache case).
At this point, the xfstests are all passing without any regressions on
my setup, so I'm throwing the patches over the fence to allow for wider
testing.
Please make sure, in particular to test pNFS if your server supports it.
I didn't have to make any changes to the pNFS code, and I don't expect
any trouble, but it would be good to have validation of that assumption.
Trond Myklebust (17):
NFS: Fix for xfstests generic/208
NFS: Add basic functionality for tracking folios in struct nfs_page
NFS: Support folios in nfs_generic_pgio()
NFS: Fix nfs_coalesce_size() to work with folios
NFS: Add a helper to convert a struct nfs_page into an inode
NFS: Convert the remaining pagelist helper functions to support folios
NFS: Add a helper nfs_wb_folio()
NFS: Convert buffered reads to use folios
NFS: Convert the function nfs_wb_page() to use folios
NFS: Convert buffered writes to use folios
NFS: Remove unused function nfs_wb_page()
NFS: Convert nfs_write_begin/end to use folios
NFS: Fix up nfs_vm_page_mkwrite() for folios
NFS: Clean up O_DIRECT request allocation
NFS: fix up nfs_release_folio() to try to release the page
NFS: Enable tracing of nfs_invalidate_folio() and nfs_launder_folio()
NFS: Improve tracing of nfs_wb_folio()
fs/nfs/direct.c | 12 +-
fs/nfs/file.c | 124 +++++++------
fs/nfs/internal.h | 38 ++--
fs/nfs/nfstrace.h | 58 ++++--
fs/nfs/pagelist.c | 217 +++++++++++++++++-----
fs/nfs/pnfs.h | 10 +-
fs/nfs/pnfs_nfs.c | 18 +-
fs/nfs/read.c | 86 +++++----
fs/nfs/write.c | 380 ++++++++++++++++++++-------------------
include/linux/nfs_fs.h | 7 +-
include/linux/nfs_page.h | 79 +++++++-
11 files changed, 645 insertions(+), 384 deletions(-)
--
2.39.0
next reply other threads:[~2023-01-07 17:42 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-07 17:36 trondmy [this message]
2023-01-07 17:36 ` [PATCH 01/17] NFS: Fix for xfstests generic/208 trondmy
2023-01-07 17:36 ` [PATCH 02/17] NFS: Add basic functionality for tracking folios in struct nfs_page trondmy
2023-01-07 17:36 ` [PATCH 03/17] NFS: Support folios in nfs_generic_pgio() trondmy
2023-01-07 17:36 ` [PATCH 04/17] NFS: Fix nfs_coalesce_size() to work with folios trondmy
2023-01-07 17:36 ` [PATCH 05/17] NFS: Add a helper to convert a struct nfs_page into an inode trondmy
2023-01-07 17:36 ` [PATCH 06/17] NFS: Convert the remaining pagelist helper functions to support folios trondmy
2023-01-07 17:36 ` [PATCH 07/17] NFS: Add a helper nfs_wb_folio() trondmy
2023-01-07 17:36 ` [PATCH 08/17] NFS: Convert buffered reads to use folios trondmy
2023-01-07 17:36 ` [PATCH 09/17] NFS: Convert the function nfs_wb_page() " trondmy
2023-01-07 17:36 ` [PATCH 10/17] NFS: Convert buffered writes " trondmy
2023-01-07 17:36 ` [PATCH 11/17] NFS: Remove unused function nfs_wb_page() trondmy
2023-01-07 17:36 ` [PATCH 12/17] NFS: Convert nfs_write_begin/end to use folios trondmy
2023-01-07 17:36 ` [PATCH 13/17] NFS: Fix up nfs_vm_page_mkwrite() for folios trondmy
2023-01-07 17:36 ` [PATCH 14/17] NFS: Clean up O_DIRECT request allocation trondmy
2023-01-07 17:36 ` [PATCH 15/17] NFS: fix up nfs_release_folio() to try to release the page trondmy
2023-01-07 17:36 ` [PATCH 16/17] NFS: Enable tracing of nfs_invalidate_folio() and nfs_launder_folio() trondmy
2023-01-07 17:36 ` [PATCH 17/17] NFS: Improve tracing of nfs_wb_folio() trondmy
2023-01-11 16:18 ` [PATCH 09/17] NFS: Convert the function nfs_wb_page() to use folios Anna Schumaker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230107173635.2025233-1-trondmy@kernel.org \
--to=trondmy@kernel.org \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox