Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 7 Dec 2003 15:03:34 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Nate Lawson <nate@root.org>
Cc:        Don Lewis <truckman@freebsd.org>
Subject:   Re: More Adaptec 29320 + Seagate ST336607LW woes
Message-ID:  <20031207143335.W7451@gamplex.bde.org>
In-Reply-To: <20031206164352.K33312@root.org>
References:  <200312061929.hB6JTpeF042644@gw.catspoiler.org> <20031206164352.K33312@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 6 Dec 2003, Nate Lawson wrote:

> On Sat, 6 Dec 2003, Don Lewis wrote:
> >
> > One place where folks have noticed a performance difference between WCE
> > on and WCE off is when using newfs after we got rid of the buffered
> > block devices and forced newfs to use the raw character device.  Newfs
> > ...
>
> Great explanation.  We should probably add write clustering to newfs at
> some point.

Ugh.  We should implement disk devices properly (which requires buffered
block devices), not implement buffering in all applications that might
benefit from using them.

I think fsck would benefit more than newfs from buffering because it
has a similar or more random access pattern (does it?) and it is used
more.  The old implementation of buffered block devices was so bad
that nothing except very random accesses benefited much from it, and it
made newfs much slower at least when I tried it 10+ years ago on drives
without tagged queuing (maybe without write caching too).  (I stopped
using buffered block devices for newfs after that, but changes in drive
technology may have made buffered devices more useful agin before they
were axed.)  The main badnesses in the old implementation were a too-small
non-application-controllable block size of 2K and missing support for
clustering.  newfs and fsck are missing the fsync()'s needed to make them
safe to use on buffered devices and regular files, and specfs_fsync()
was buggy.

Bruce


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20031207143335.W7451>