ESDI caching disk controllers: Reprise

Chris Lewis clewis at eci386.uucp
Sat May 5 08:33:32 AEST 1990

All things being equal, adding main memory and kernel buffers would be 
better than adding yet another layer of caching, *but*:

	- the controller is more likely to be better tuned to the geometry 
	  of the disk than bio and fio are and know how to optimize operations 
	  better.  (fio is the file level handler and bio is the buffered-disk
	  level handler in most UNIX kernels)
	- since the controller is a somewhat "simpler" environment (there 
	  ain't no uproc's etc. getting in the way ;-), adding improved 
	  algorithms is *easier*.  (look-ahead-cancel/defer, track-cache,
	  elevator algorithm, cache-locking, cache partitioning etc.)
	- you only have to tune the heck out of the controller once, rather
	  than having to retune (rewrite) the driver for each port.
	- Controller manufacturers usually know a heck of a lot more about
	  disks than UNIX porting people who have other problems to deal with.
	- If you put a UPS on the controller and disk, disk sync order
	  ain't that particularly important, so the controller can be 
	  considerably more free in operation ordering....  In fact,
	  given appropriate conditions, the controller may *never* have
	  to write the disk...  (oversimplified, requires UPS, and
	  pretty fail-safe controller/disk - Not that you want it
	  really to do this - the DPT controller does timeout and
	  forces writes after a moderate amount of time).  It's the
	  neatest thing to see a system panic, and the disk abruptly
	  gets very busy for another 30 seconds or so....
And finally, since no UNIX kernel that I'm aware of resizes buffer cache 
dynamically, you end up with a lot more memory to put processes in rather
than trading off all over the place, and the kernel buffer size isn't 
that important anymore.

Mind you, there are some pretty awesome things you could do if you make
these controllers a bit smarter and get fio to know about them.
(eg: cancellable/deferable next-n-blocks-in-a-file look-ahead instead 
of consequitive physical block).

The DPT controllers are pretty amazing.  I've used DPT's ESDI and ST506
controllers on SCSI bus.  Talk about making NCR Towers scream!  (factors
of 30 upon occasion).  And I understand the AT-bus ones are just as good.
Chris Lewis, Elegant Communications Inc, {uunet!attcan,utzoo}!lsuc!eci386!clewis
Ferret mailing list: eci386!ferret-list, psroff mailing list: eci386!psroff-list

More information about the Comp.unix.i386 mailing list