Path: utzoo!censor!comspec!humvax!robohack!eci386!clewis From: clewis@eci386.uucp (Chris Lewis) Newsgroups: comp.unix.i386 Subject: Re: ESDI caching disk controllers: Reprise Keywords: ESDI cache Message-ID: <1990May4.223332.4180@eci386.uucp> Date: 4 May 90 22:33:32 GMT References: <274@caslon.cs.arizona.edu> <873@sixhub.UUCP> <1424@ssbn.WLK.COM> <1736@serene.UUCP> <1439@ssbn.WLK.COM> <1990May3.140939.23457@comm.wang.com> Reply-To: clewis@eci386.UUCP (Chris Lewis) Distribution: na Organization: Elegant Communications Inc., Toronto, Canada Lines: 43 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