Date: Wed, 22 Mar 1995 01:35:01 +0000 () From: "John S. Dyson" <toor@jsdinc.root.com> To: zeta.org.au!bde@implode.root.com (Bruce Evans) Cc: CVS-commiters@freefall.cdrom.com, cvs-sys@freefall.cdrom.com, davidg@freefall.cdrom.com Subject: Re: cvs commit: src/sys/i386/isa wd.c wdreg.h Message-ID: <199503220135.BAA02964@jsdinc.root.com> In-Reply-To: <199503220604.QAA04399@godzilla.zeta.org.au> from "Bruce Evans" at Mar 22, 95 04:04:06 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> > Please don't fix or improve wd.c or sd.c any more until the sliced > versions are committed. > > I've fixed the I/O statistics too. > I just got tired of seeing the WD drives appear to be doing much more than they really were... > > I used a WD1007 for 2 years. Who broke the support for it? :-). > It appears that it broke with the addition of the 32bit support. > The delay needs to be done better. First, 1.x usec for an inb() is at > least (0.550 + 0.x) usec wasted. Second, some machines are reported > to optimize some motherboard inb()s. I think reading the status register > is more likely to give a long enough delay since the register is (much) > more likely to be on the bus. Lots of time was wasted for other reasons too. Reads were significantly less efficient than they needed to be, for example, going through the wdstart for *every* block also recalculating the disk address unnecessarily!!! Also, the multi-block support speeds things up significantly on my machine (>15%). In fact, restructuring the delay loop in wdwait and doing multi-block transfers made my ISA WD Caviars go from 1.6MB/sec to 2.3MB/sec!!! If it appears that the read of the status register is best, cool... Unfortunately I do not have a PCI/VL buss machine to test this stuff on. But the wasted time of an isa "inb" is not all that signficant per my macro-level measurments. Maybe we need a timer with a 100nsec resolution to get things right!!! :-). The multi-block I/O was very simple to add and gave a very significant performance boost, eliminating lots of interrupts, and many of those *evil* inb(s) :-) in wdwait... John dyson@root.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199503220135.BAA02964>