* [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" @ 2025-06-18 12:58 Chuck Lever 2025-06-18 13:02 ` Jeff Layton 2025-06-18 19:22 ` Aurélien Couderc 0 siblings, 2 replies; 8+ messages in thread From: Chuck Lever @ 2025-06-18 12:58 UTC (permalink / raw) To: NeilBrown, Jeff Layton, Olga Kornievskaia, Dai Ngo, Tom Talpey Cc: linux-nfs, Chuck Lever From: Chuck Lever <chuck.lever@oracle.com> In the past several kernel releases, we've made NFSv4.2 async copy reliable: - The Linux NFS client and server now both implement and use the NFSv4.2 OFFLOAD_STATUS operation - The Linux NFS server keeps copy stateids around longer - The Linux NFS client and server now both implement referring call lists And resilient against DoS: - The Linux NFS server limits the number of concurrent async copy operations Signed-off-by: Chuck Lever <chuck.lever@oracle.com> --- fs/nfsd/nfs4proc.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index f13abbb13b38..2b76a8267a4b 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -1917,13 +1917,6 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd42_write_res *result; __be32 status; - /* - * Currently, async COPY is not reliable. Force all COPY - * requests to be synchronous to avoid client application - * hangs waiting for COPY completion. - */ - nfsd4_copy_set_sync(copy, true); - result = ©->cp_res; nfsd_copy_write_verifier((__be32 *)&result->wr_verifier.data, nn); -- 2.49.0 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" 2025-06-18 12:58 [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" Chuck Lever @ 2025-06-18 13:02 ` Jeff Layton 2025-06-18 19:22 ` Aurélien Couderc 1 sibling, 0 replies; 8+ messages in thread From: Jeff Layton @ 2025-06-18 13:02 UTC (permalink / raw) To: Chuck Lever, NeilBrown, Olga Kornievskaia, Dai Ngo, Tom Talpey Cc: linux-nfs, Chuck Lever On Wed, 2025-06-18 at 08:58 -0400, Chuck Lever wrote: > From: Chuck Lever <chuck.lever@oracle.com> > > In the past several kernel releases, we've made NFSv4.2 async copy > reliable: > - The Linux NFS client and server now both implement and use the > NFSv4.2 OFFLOAD_STATUS operation > - The Linux NFS server keeps copy stateids around longer > - The Linux NFS client and server now both implement referring call > lists > > And resilient against DoS: > - The Linux NFS server limits the number of concurrent async copy > operations > > Signed-off-by: Chuck Lever <chuck.lever@oracle.com> > --- > fs/nfsd/nfs4proc.c | 7 ------- > 1 file changed, 7 deletions(-) > > diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c > index f13abbb13b38..2b76a8267a4b 100644 > --- a/fs/nfsd/nfs4proc.c > +++ b/fs/nfsd/nfs4proc.c > @@ -1917,13 +1917,6 @@ nfsd4_copy(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, > struct nfsd42_write_res *result; > __be32 status; > > - /* > - * Currently, async COPY is not reliable. Force all COPY > - * requests to be synchronous to avoid client application > - * hangs waiting for COPY completion. > - */ > - nfsd4_copy_set_sync(copy, true); > - > result = ©->cp_res; > nfsd_copy_write_verifier((__be32 *)&result->wr_verifier.data, nn); > Reviewed-by: Jeff Layton <jlayton@kernel.org> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" 2025-06-18 12:58 [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" Chuck Lever 2025-06-18 13:02 ` Jeff Layton @ 2025-06-18 19:22 ` Aurélien Couderc 2025-07-12 13:06 ` Aurélien Couderc 1 sibling, 1 reply; 8+ messages in thread From: Aurélien Couderc @ 2025-06-18 19:22 UTC (permalink / raw) To: Chuck Lever Cc: NeilBrown, Jeff Layton, Olga Kornievskaia, Dai Ngo, Tom Talpey, linux-nfs, Chuck Lever On Wed, Jun 18, 2025 at 2:58 PM Chuck Lever <cel@kernel.org> wrote: > > From: Chuck Lever <chuck.lever@oracle.com> > > In the past several kernel releases, we've made NFSv4.2 async copy > reliable: > - The Linux NFS client and server now both implement and use the > NFSv4.2 OFFLOAD_STATUS operation > - The Linux NFS server keeps copy stateids around longer > - The Linux NFS client and server now both implement referring call > lists > > And resilient against DoS: > - The Linux NFS server limits the number of concurrent async copy > operations And how does an amin change that limit? There is zero documentation for admins, and zero training or reference material for COPY, CLONE, ALLOCATE, ... Aurélien -- Aurélien Couderc <aurelien.couderc2002@gmail.com> Big Data/Data mining expert, chess enthusiast ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" 2025-06-18 19:22 ` Aurélien Couderc @ 2025-07-12 13:06 ` Aurélien Couderc 2025-07-13 17:50 ` Chuck Lever 0 siblings, 1 reply; 8+ messages in thread From: Aurélien Couderc @ 2025-07-12 13:06 UTC (permalink / raw) To: Chuck Lever Cc: NeilBrown, Jeff Layton, Olga Kornievskaia, Dai Ngo, Tom Talpey, linux-nfs, Chuck Lever ? On Wed, Jun 18, 2025 at 9:22 PM Aurélien Couderc <aurelien.couderc2002@gmail.com> wrote: > > On Wed, Jun 18, 2025 at 2:58 PM Chuck Lever <cel@kernel.org> wrote: > > > > From: Chuck Lever <chuck.lever@oracle.com> > > > > In the past several kernel releases, we've made NFSv4.2 async copy > > reliable: > > - The Linux NFS client and server now both implement and use the > > NFSv4.2 OFFLOAD_STATUS operation > > - The Linux NFS server keeps copy stateids around longer > > - The Linux NFS client and server now both implement referring call > > lists > > > > And resilient against DoS: > > - The Linux NFS server limits the number of concurrent async copy > > operations > > And how does an amin change that limit? There is zero documentation > for admins, and zero training or reference material for COPY, CLONE, > ALLOCATE, ... > > Aurélien > -- > Aurélien Couderc <aurelien.couderc2002@gmail.com> > Big Data/Data mining expert, chess enthusiast -- Aurélien Couderc <aurelien.couderc2002@gmail.com> Big Data/Data mining expert, chess enthusiast ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" 2025-07-12 13:06 ` Aurélien Couderc @ 2025-07-13 17:50 ` Chuck Lever 2025-07-14 10:36 ` Aurélien Couderc 0 siblings, 1 reply; 8+ messages in thread From: Chuck Lever @ 2025-07-13 17:50 UTC (permalink / raw) To: Aurélien Couderc Cc: NeilBrown, Jeff Layton, Olga Kornievskaia, Dai Ngo, Tom Talpey, linux-nfs, Chuck Lever On 7/12/25 9:06 AM, Aurélien Couderc wrote: > ? > > On Wed, Jun 18, 2025 at 9:22 PM Aurélien Couderc > <aurelien.couderc2002@gmail.com> wrote: >> >> On Wed, Jun 18, 2025 at 2:58 PM Chuck Lever <cel@kernel.org> wrote: >>> >>> From: Chuck Lever <chuck.lever@oracle.com> >>> >>> In the past several kernel releases, we've made NFSv4.2 async copy >>> reliable: >>> - The Linux NFS client and server now both implement and use the >>> NFSv4.2 OFFLOAD_STATUS operation >>> - The Linux NFS server keeps copy stateids around longer >>> - The Linux NFS client and server now both implement referring call >>> lists >>> >>> And resilient against DoS: >>> - The Linux NFS server limits the number of concurrent async copy >>> operations >> >> And how does an amin change that limit? There is zero documentation >> for admins, and zero training or reference material for COPY, CLONE, >> ALLOCATE, ... >> >> Aurélien >> -- >> Aurélien Couderc <aurelien.couderc2002@gmail.com> >> Big Data/Data mining expert, chess enthusiast > > > The tone of your original email suggested to me that it was a whine rather than a genuine request for more information. Also the request for "training material" for individual NFSv4.2 operations does not make sense. We do not have training material for the NFSv3 READDIRPLUS procedure, for example. Therefore I ignored the email. If you want reference material, the obvious place to look is the Internet standard that specifies these new operations (RFC 7862). It is publicly accessible on the web. If you need something more basic, I highly recommend Callaghan's "NFS Illustrated" (ISBN: 9780321618924). NFSv4.2 COPY, CLONE, and ALLOCATE are exposed to applications via the POSIX file system API available in Linux, as documented in man pages. There is no specific administrative setting that controls the number of concurrent asynchronous COPY operations. The limit increases with the number of NFSD threads. If someone demonstrates a specific use case where manually adjusting that limit is necessary, a setting can be implemented. The specific guidance you might be looking for is typically provided by the documentation staff at Linux distributions. You could file an issue with your favorite Linux vendor to let them know what you are looking for. -- Chuck Lever ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" 2025-07-13 17:50 ` Chuck Lever @ 2025-07-14 10:36 ` Aurélien Couderc 2025-07-14 10:38 ` Aurélien Couderc 2025-07-14 13:59 ` Chuck Lever 0 siblings, 2 replies; 8+ messages in thread From: Aurélien Couderc @ 2025-07-14 10:36 UTC (permalink / raw) To: linux-nfs On Sun, Jul 13, 2025 at 7:50 PM Chuck Lever <cel@kernel.org> wrote: > > On 7/12/25 9:06 AM, Aurélien Couderc wrote: > > ? > > > > On Wed, Jun 18, 2025 at 9:22 PM Aurélien Couderc > > <aurelien.couderc2002@gmail.com> wrote: > >> > >> On Wed, Jun 18, 2025 at 2:58 PM Chuck Lever <cel@kernel.org> wrote: > >>> > >>> From: Chuck Lever <chuck.lever@oracle.com> > >>> > >>> In the past several kernel releases, we've made NFSv4.2 async copy > >>> reliable: > >>> - The Linux NFS client and server now both implement and use the > >>> NFSv4.2 OFFLOAD_STATUS operation > >>> - The Linux NFS server keeps copy stateids around longer > >>> - The Linux NFS client and server now both implement referring call > >>> lists > >>> > >>> And resilient against DoS: > >>> - The Linux NFS server limits the number of concurrent async copy > >>> operations > >> > >> And how does an amin change that limit? There is zero documentation > >> for admins, and zero training or reference material for COPY, CLONE, > >> ALLOCATE, ... > >> > >> Aurélien > >> -- > >> Aurélien Couderc <aurelien.couderc2002@gmail.com> > >> Big Data/Data mining expert, chess enthusiast > > > > > > > > The tone of your original email suggested to me that it was a whine > rather than a genuine request for more information. Well, put it that way: I am not a native english speaker. Imagine a world in the multiverse where the French retained their colonies instead of the British empire. French would be the dominant language of that blue marble. Programming languages would use french words. Someone from the tiny leftover remnants of the British empire would post in the linnaeus-sdfr@ (système de fichiers réseau, AKA NFS) mailing list, and that post would be called "a whine", because his French is not perfect... > > Also the request for "training material" for individual NFSv4.2 > operations does not make sense. We do not have training material for > the NFSv3 READDIRPLUS procedure, for example. > > Therefore I ignored the email. OK, but as an analog: SMB is infamous for "too many" features, all which can cause trouble. Over time SAMBA added controls to turn features on/off or use different ways of emulation. So far NFSv4.2 has no controls to turn specific features on/off, or even get statistics, or put limits on certain features. That IS a problem, which SAMBA and even Windows Server SMB have solved. Otherwise you're at the mercy of whatever combination of NFS client and NFS server you have, and that is NOT good. Aurélien -- Aurélien Couderc <aurelien.couderc2002@gmail.com> Big Data/Data mining expert, chess enthusiast ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" 2025-07-14 10:36 ` Aurélien Couderc @ 2025-07-14 10:38 ` Aurélien Couderc 2025-07-14 13:59 ` Chuck Lever 1 sibling, 0 replies; 8+ messages in thread From: Aurélien Couderc @ 2025-07-14 10:38 UTC (permalink / raw) To: linux-nfs On Mon, Jul 14, 2025 at 12:36 PM Aurélien Couderc <aurelien.couderc2002@gmail.com> wrote: > > On Sun, Jul 13, 2025 at 7:50 PM Chuck Lever <cel@kernel.org> wrote: > > > > On 7/12/25 9:06 AM, Aurélien Couderc wrote: > > > ? > > > > > > On Wed, Jun 18, 2025 at 9:22 PM Aurélien Couderc > > > <aurelien.couderc2002@gmail.com> wrote: > > >> > > >> On Wed, Jun 18, 2025 at 2:58 PM Chuck Lever <cel@kernel.org> wrote: > > >>> > > >>> From: Chuck Lever <chuck.lever@oracle.com> > > >>> > > >>> In the past several kernel releases, we've made NFSv4.2 async copy > > >>> reliable: > > >>> - The Linux NFS client and server now both implement and use the > > >>> NFSv4.2 OFFLOAD_STATUS operation > > >>> - The Linux NFS server keeps copy stateids around longer > > >>> - The Linux NFS client and server now both implement referring call > > >>> lists > > >>> > > >>> And resilient against DoS: > > >>> - The Linux NFS server limits the number of concurrent async copy > > >>> operations > > >> > > >> And how does an amin change that limit? There is zero documentation > > >> for admins, and zero training or reference material for COPY, CLONE, > > >> ALLOCATE, ... > > >> > > >> Aurélien > > >> -- > > >> Aurélien Couderc <aurelien.couderc2002@gmail.com> > > >> Big Data/Data mining expert, chess enthusiast > > > > > > > > > > > > > The tone of your original email suggested to me that it was a whine > > rather than a genuine request for more information. > > Well, put it that way: I am not a native english speaker. > > Imagine a world in the multiverse where the French retained their > colonies instead of the British empire. French would be the dominant > language of that blue marble. Programming languages would use french > words. Someone from the tiny leftover remnants of the British empire > would post in the linnaeus-sdfr@ (système de fichiers réseau, AKA NFS) > mailing list, and that post would be called "a whine", because his > French is not perfect... > > > > > Also the request for "training material" for individual NFSv4.2 > > operations does not make sense. We do not have training material for > > the NFSv3 READDIRPLUS procedure, for example. > > > > Therefore I ignored the email. > > OK, but as an analog: SMB is infamous for "too many" features, all > which can cause trouble. Over time SAMBA added controls to turn > features on/off or use different ways of emulation. So far NFSv4.2 Apologies, that should have been "the LINUX NFSv4.2 server implementation" > has > no controls to turn specific features on/off, or even get statistics, > or put limits on certain features. > > That IS a problem, which SAMBA and even Windows Server SMB have > solved. Otherwise you're at the mercy of whatever combination of NFS > client and NFS server you have, and that is NOT good. > > Aurélien > -- > Aurélien Couderc <aurelien.couderc2002@gmail.com> > Big Data/Data mining expert, chess enthusiast Aurélien -- Aurélien Couderc <aurelien.couderc2002@gmail.com> Big Data/Data mining expert, chess enthusiast ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" 2025-07-14 10:36 ` Aurélien Couderc 2025-07-14 10:38 ` Aurélien Couderc @ 2025-07-14 13:59 ` Chuck Lever 1 sibling, 0 replies; 8+ messages in thread From: Chuck Lever @ 2025-07-14 13:59 UTC (permalink / raw) To: Aurélien Couderc; +Cc: linux-nfs On 7/14/25 6:36 AM, Aurélien Couderc wrote: > On Sun, Jul 13, 2025 at 7:50 PM Chuck Lever <cel@kernel.org> wrote: >> Also the request for "training material" for individual NFSv4.2 >> operations does not make sense. We do not have training material for >> the NFSv3 READDIRPLUS procedure, for example. >> >> Therefore I ignored the email. > > OK, but as an analog: SMB is infamous for "too many" features, all > which can cause trouble. Over time SAMBA added controls to turn > features on/off or use different ways of emulation. Samba has to navigate between two rather incompatible worlds: POSIX as it is implemented on Linux and FreeBSD, and the Windows world, via a non-POSIX network file protocol (SMB). There needs to be some flexibility of configuration there. > So far NFSv4.2 has > no controls to turn specific features on/off, or even get statistics, > or put limits on certain features. There has to be a demonstrated need for each such control. We're not going to add controls that don't have any real use because controls actually have a long-term cost. One or two might not be expensive to maintain, but when you add them with abandon, it adds up: - Administrative complexity increases - Our test matrix increases exponentially - The documentation workload increases - Kernel API rules make it difficult to fix mistakes or remove deprecated controls - Replacing a constant with a control setting has a small run-time cost - Developing around these controls can sometimes be difficult There are very good reasons why Gnome removed most of their configuration settings a few years back. Eventually it becomes impossible to manage and maintain the software. This is not to say we won't add a control if it should become necessary. So do you have a need to disable an NFSv4.2 feature? If so, which ones, and why? Do you have a need to limit some feature? If so, why? What operations and events do you want to count? Why? Why can't you use eBPF, kprobes, Dtrace, systemtap ? Since this is open source, can you contribute what you need rather than asking us to implement it? > That IS a problem, which SAMBA and even Windows Server SMB have > solved. Otherwise you're at the mercy of whatever combination of NFS > client and NFS server you have, and that is NOT good. That is still a very generic complaint. If you have a specific issue or question, please post it. Simply saying "we need more controls" is just not actionable. -- Chuck Lever ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-07-14 13:59 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-06-18 12:58 [RFC PATCH] Revert "NFSD: Force all NFSv4.2 COPY requests to be synchronous" Chuck Lever 2025-06-18 13:02 ` Jeff Layton 2025-06-18 19:22 ` Aurélien Couderc 2025-07-12 13:06 ` Aurélien Couderc 2025-07-13 17:50 ` Chuck Lever 2025-07-14 10:36 ` Aurélien Couderc 2025-07-14 10:38 ` Aurélien Couderc 2025-07-14 13:59 ` Chuck Lever
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox