*BSD News Article 34412


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!yeshua.marcam.com!MathWorks.Com!news2.near.net!news.delphi.com!usenet
From: John Dyson <dysonj@delphi.com>
Newsgroups: comp.os.386bsd.misc
Subject: Re: Whats wrong with Linux networking ???
Date: Tue, 16 Aug 94 10:04:20 -0500
Organization: Delphi (info@delphi.com email, 800-695-4005 voice)
Lines: 29
Message-ID: <Rg-zFSE.dysonj@delphi.com>
References: <RSANDERS.94Aug9003813@hrothgar.mindspring.com> <32ll52$n7d@quagga.ru.ac.za> <1994Aug15.034939.20997@cs.brown.edu> <32ol5s$ck@euterpe.owl.de> <32qb60$ere@ra.nrl.navy.mil>
NNTP-Posting-Host: bos1c.delphi.com
X-To: Craig Metz <cmetz@sundance.itd.nrl.navy.mil>

Craig Metz <cmetz@sundance.itd.nrl.navy.mil> writes:
 
>	I think, in general, a properly done merged VM/buffercache scenario
>like Linux uses is the way to go. This what FreeBSD is doing, isn't it? The
>old circa-Net/2 way of doing it, to have a fixed size buffercache, is most
>frequently not the best way to go, though it's certainly easier to implement
>and debug.
 
There are some differences in the way that Linux does it as opposed to
FreeBSD V2.0.  Linux uses a dynamically sized buffer cache, and coherency
is implemented as "special code" to alias the pages.  FreeBSD will use
the VM object cache for all (initially UFS and NFS) regular file data.
This will allow full coherency as a side-effect of the implementation.  Tests
have shown that it will work fine.  V2.0 will use the merged scheme initially
for VREG files in UFS and NFS (due to deadlines), and eventually will be
used for VREG, VBLK and VDIR files in all filesystems (except for those
that choose to use the old interface -- hopefully none.)
 
I agree that it is much easier to debug a fixed sized buffer cache, esp.
considering the problems of hogging physical memory and trying to make
the right choice as to what data is more important to keep.
 
Actually, the new merged VM code is not really all that difficult, if the
low level layers of the filesystem are changed to use the new interface.
The problem happens when you try to use the old interface -- it gets
yucky...
 
John
dyson@implode.root.com