*BSD News Article 22559


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!elroy.jpl.nasa.gov!usc!acsc.com!acsc.com!jerry
From: jerry@acsc.com (Jerry Chen)
Newsgroups: comp.os.386bsd.development
Subject: Has anybody tried to add B_ORDER in UFS and disk device driver?
Date: 18 Oct 1993 22:21:41 GMT
Organization: Advanced Computing Systems Company
Lines: 21
Distribution: world
Message-ID: <29v4tl$9er@acsc.com>
NNTP-Posting-Host: cpuserver.acsc.com

The paper by Larry McVoy and Steve Kleiman

"Extent-like Performance from a UNXI File System", USENIX winter '91

mentions that if we add a flag B_ORDER in the buf struct and the 
disk device driver does not reorder the bufs upon seeing this flag, then 
we do not have to always write synchronously in certain directory operations.
That is, if we always put the read/write request at the end of the request queue
in the disk device driver when we see this flag (which can be part of the 
b_flags in buf struct) turned on, then, we do not have to have so many bwrite() 
in UFS.  This should improve the performance for commands like 'rm *'.  
In terms of the implementation, we only need to modify the c code in such 
routines as wddisksort() and disksort() before changing bwrite() to
bawrite(B_ORDER) in UFS.

This seems a good idea to me.  Has anybody implemented this?  What is the
difference in terms of the performance?  Of course, I realize that every disk
driver must support this feature before we can change the code in UFS.


Jerry JyhRen Chen