SCSI hiding geometry

Randell Jesup jesup at cbmvax.commodore.com
Mon Mar 12 04:06:47 AEST 1990


In article <1990Mar11.045128.17732 at ico.isc.com> rcd at ico.isc.com (Dick Dunn) writes:
>mjacob at wonky.Sun.COM (Matt Jacob) writes:
>...
>> My own personal opinion is that geometry based filesystems are
>> getting to be a bad microoptimization...
>
>But SCSI is not the only interface around, and I think there are some open
>questions about how much device-sensitivity you want in the mid level of
>the file/disk system.  That is, if you've got a more traditional disk
>interface (some of which are pretty high performance) you need to deal with
>geometry.  Do you want to ignore geometry some of the time?  It gets harder
>and harder to know how/where to make the cut.

	You can easily separate the levels when you have a "traditional" disk
interface.  Under AmigaDos, on the A590 SCSI/"PC Bus Drive" HD interface,
you can send direct SCSI commands to either the SCSI bus, or the "PC Bus"
drives (the driver deals with them).

>(My own personal opinion, not necessarily well substantiated, is that SCSI
>was at best premature, and at worst wrong, in trying to hide drive geometry
>from the host system.)

	Ah, but it doesn't!  Use READ_CAPACITY in the "tell me where the next
slowdown in read is" mode.  This allows you to build a list of groups of
sectors that are "fast", and know where the breaks are.  Note that this 
handles Zone-Recorded drives quite well, while still allowing the FS to
know the geometry (who ever said disks had to be regular arrays? Even the
old PET disks used Zone recording...)

>This raises a sticky issue of who's in control of the disk system.
>Consider reliability issues.  Two examples come to mind.  First, in a UNIX
>file system, you probably want to have some control over the order of
>operations so that you can have some reasonable assurance that operations
>on inodes, indirect blocks, directories, and data happen in a way that will
>allow you a good chance for recovery if you crash while there are
>operations in the queue.  Second, in a database it is essential that you be
>able to control the sequencing of operations so that commits really commit,
>journaling happens when you expect, etc.

	You can still do this under SCSI, though it may be slightly less
simple than straight Read/Write commands (though I think you can force
serialization of writes pretty easily).

>I think it would make the job of kernel folks a lot easier if they could
>deal with interfaces which just attempt to be fast in a predictable way,
>instead of trying to be smart.

	The interfaces are only as smart as you want them to be.  Filesystems
are the "customer" of essentially all SCSI drives; and they're set up pretty
well to make things nice for filesystems (and drivers).  Also, every SCSI
drive I've seen has defaults that are "safe" - no reordering of writes, etc.

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup at cbmvax.cbm.commodore.com  BIX: rjesup  
Common phrase heard at Amiga Devcon '89: "It's in there!"



More information about the Comp.unix.aix mailing list