Skip site navigation (1)Skip section navigation (2)
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>