From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Banks Subject: Re: PATCH [NFSd] NFSv3/TCP Date: Fri, 07 May 2004 17:22:24 +1000 Sender: linux-kernel-owner@vger.kernel.org Message-ID: <409B3930.9B0C9659@melbourne.sgi.com> References: <16539.12572.90447.543633@cse.unsw.edu.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Oliver Tennert , linux-kernel@vger.kernel.org, Linux NFS Mailing List Return-path: To: Neil Brown List-ID: Neil Brown wrote: > > There was once a patch floating around which allowed a larger > NFSSVC_MAXBLKSIZE on architectures with large page sizes, but it never > got properly submitted I think. Then please consider this a resend. I'll appreciate any guidance about proper submission. This patch has been in SGI's ProPack kernel for 6 months and resulted in a significant improvement in NFS throughput at a number of customer sites. --- /usr/tmp/TmpDir.16250-0/linux/linux/include/linux/nfsd/const.h_1.5 Fri May 7 17:20:22 2004 +++ /usr/tmp/TmpDir.16250-0/linux/linux/include/linux/nfsd/const.h Fri May 7 17:20:22 2004 @@ -12,6 +12,7 @@ #include #include #include +#include /* * Maximum protocol version supported by knfsd @@ -19,9 +20,16 @@ #define NFSSVC_MAXVERS 3 /* - * Maximum blocksize supported by daemon currently at 8K + * Maximum blocksize supported by daemon. We want the largest + * value which 1) fits in a UDP datagram less some headers + * 2) is a multiple of page size 3) can be successfully kmalloc()ed + * by each nfsd. */ -#define NFSSVC_MAXBLKSIZE (8*1024) +#if PAGE_SIZE > (16*1024) +#define NFSSVC_MAXBLKSIZE (32*1024) +#else +#define NFSSVC_MAXBLKSIZE (2*PAGE_SIZE) +#endif #ifdef __KERNEL__ Greg. -- Greg Banks, R&D Software Engineer, SGI Australian Software Group. I don't speak for SGI.