On Mon, 2025-04-28 at 15:37 -0400, cel@xxxxxxxxxx wrote: > From: Chuck Lever <chuck.lever@xxxxxxxxxx> > > Increase the maximum server-side RPC payload to 4MB. The default > remains at 1MB. > > To adjust the operational maximum, shut down the NFS server. Then > echo a new value into: > > /proc/fs/nfsd/max_block_size > > And restart the NFS server. > > Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx> > --- > include/linux/sunrpc/svc.h | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h > index e27bc051ec67..b449eb02e00a 100644 > --- a/include/linux/sunrpc/svc.h > +++ b/include/linux/sunrpc/svc.h > @@ -119,14 +119,14 @@ void svc_destroy(struct svc_serv **svcp); > * Linux limit; someone who cares more about NFS/UDP performance > * can test a larger number. > * > - * For TCP transports we have more freedom. A size of 1MB is > - * chosen to match the client limit. Other OSes are known to > - * have larger limits, but those numbers are probably beyond > - * the point of diminishing returns. > + * For non-UDP transports we have more freedom. A size of 4MB is > + * chosen to accommodate clients that support larger I/O sizes. > */ > -#define RPCSVC_MAXPAYLOAD (1*1024*1024u) > -#define RPCSVC_MAXPAYLOAD_TCP RPCSVC_MAXPAYLOAD > -#define RPCSVC_MAXPAYLOAD_UDP (32*1024u) > +enum { > + RPCSVC_MAXPAYLOAD = 4 * 1024 * 1024, > + RPCSVC_MAXPAYLOAD_TCP = RPCSVC_MAXPAYLOAD, > + RPCSVC_MAXPAYLOAD_UDP = 32 * 1024, > +}; I guess the enum is so that the symbol names remain in debuginfo? > > extern u32 svc_max_payload(const struct svc_rqst *rqstp); > Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx>