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>