Skip site navigation (1)Skip section navigation (2)
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>