From: Chuck Lever <chuck.lever@xxxxxxxxxx> The usual policy for kernel-user space APIs is that once a public API appears, it is difficult to change or remove, in order to maintain backwards compatibility with user space software. This series introduces /sys/kernel/debug/nfsd/ where we can hopefully place ephemeral and undocumented settings for testing NFSD features that are to be added or deprecated without the worry of having to support an administrative API forever without change, amen. As a first consumer of this user-kernel API, the series adds a simple disable-splice-read setting, which can force all NFS READ operations to use vfs_iter_read() rather than page splicing to fill data content for an NFS reply. The splice read path is the default on most file systems, so it gets most of the test experience. The purpose of this new setting is to enable test runners to force the use of the iov iter path. We are also interested in comparing the performance of the splice and iter paths, as a prelude to potentially removing page splicing. This new setting makes it easy to benchmark either read mode without having to rebuild the kernel. We have an eye on a few other consumers, such as uncached I/O and increasing the maximum r/wsize, for which /sys/kernel/debug/nfsd might be suitable while their performance impact is studied before a concrete administrative interface is agreed upon. Opinions and code review are welcome, as always. Chuck Lever (2): NFSD: Add /sys/kernel/debug/nfsd NFSD: Add experimental setting to disable the use of splice read fs/nfsd/Makefile | 1 + fs/nfsd/debugfs.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ fs/nfsd/nfsctl.c | 4 ++++ fs/nfsd/nfsd.h | 10 ++++++++++ fs/nfsd/vfs.c | 4 ++++ 5 files changed, 66 insertions(+) create mode 100644 fs/nfsd/debugfs.c -- 2.48.1