Date: Sun, 22 Aug 1999 16:34:42 +0100 (BST) From: Doug Rabson <dfr@nlsystems.com> To: Matthew Dillon <dillon@apollo.backplane.com> Cc: "John S. Dyson" <dyson@iquest.net>, Alfred Perlstein <bright@rush.net>, Eivind Eklund <eivind@freebsd.org>, Peter Wemm <peter@freebsd.org>, current@freebsd.org Subject: Re: NFS HEADS UP (was Re: cvs commit: src/sys/nfs nfsm_subs.h xdr_subs.h) Message-ID: <Pine.BSF.4.10.9908221632160.72739-100000@salmon.nlsystems.com> In-Reply-To: <199908211649.JAA73759@apollo.backplane.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 21 Aug 1999, Matthew Dillon wrote: > :> Well, the issue with converting many of the macros to inline functions > :> is with the embedded goto's and references to variables defined outside > :> the macros. Converting them to functions would basically require > :> rewriting a huge chunk of NFS code. > :> > :My working kernel runs with a few strategic NFS macros being converted > :to functions, and the size improvement is about 50K or so (maybe more!!!) > : > :John > > If you want to port some of it in that part of the source tree will be > available in a month or two, depending on how quickly the other stuff in > my queue gets committed. I've got two patch sets currently under test > related to other NFS issues and a third one in the wings. > > Hey, speaking of NFS ... I'm working on optimizing the commit rpc and > I noticed something interesting. The commit rpc includes an offset and > a length field. > > Does anyone know why our NFS clients are sending a separate RPC for each > 8K buffer? If the dirty space is contiguous across a number of buffers > we should be able to send a *SINGLE* commit rpc to the server. That would > greatly reduce system overhead on both the client and server when writing > a large file over NFS. This would seem to be an almost free optimization > that would mesh extremely well with the nfsrv_commit optimizations I'm > making right now. > > At the moment I can saturate a 100BaseTX with NFS writes and get > 10 MBytes/sec to the platter on the server, but the cpu required on both > the client and server to do that is well over 60% of a Pentium III-450. I worked on reducing the number of commit rpcs a while ago. The best I could come up with was to use the B_CLUSTEROK flag to get vfs_bio.c to aggregate several buffers together to make a single large commit. Does that code still work? It made a big difference to the number of commit rpcs at the time. -- Doug Rabson Mail: dfr@nlsystems.com Nonlinear Systems Ltd. Phone: +44 181 442 9037 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.9908221632160.72739-100000>