From owner-cvs-sys Tue Mar 21 22:33:43 1995 Return-Path: cvs-sys-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id WAA23491 for cvs-sys-outgoing; Tue, 21 Mar 1995 22:33:43 -0800 Received: from Root.COM (implode.Root.COM [198.145.90.1]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id WAA23477; Tue, 21 Mar 1995 22:33:40 -0800 Received: from jsdinc.root.com (uucp@localhost) by Root.COM (8.6.8/8.6.5) with UUCP id WAA01918; Tue, 21 Mar 1995 22:32:33 -0800 Received: (root@localhost) by jsdinc.root.com (8.6.11/8.6.5) id BAA02964; Wed, 22 Mar 1995 01:35:01 GMT From: "John S. Dyson" Message-Id: <199503220135.BAA02964@jsdinc.root.com> Subject: Re: cvs commit: src/sys/i386/isa wd.c wdreg.h To: zeta.org.au!bde@implode.root.com (Bruce Evans) Date: Wed, 22 Mar 1995 01:35:01 +0000 () Cc: CVS-commiters@freefall.cdrom.com, cvs-sys@freefall.cdrom.com, davidg@freefall.cdrom.com In-Reply-To: <199503220604.QAA04399@godzilla.zeta.org.au> from "Bruce Evans" at Mar 22, 95 04:04:06 pm X-Mailer: ELM [version 2.4 PL23] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 1675 Sender: cvs-sys-owner@freebsd.org Precedence: bulk > > 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