From owner-freebsd-hackers Thu Apr 11 12:37:46 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id MAA04710 for hackers-outgoing; Thu, 11 Apr 1996 12:37:46 -0700 (PDT) Received: from dyson.iquest.net (dyson.iquest.net [198.70.144.127]) by freefall.freebsd.org (8.7.3/8.7.3) with ESMTP id MAA04702 for ; Thu, 11 Apr 1996 12:37:42 -0700 (PDT) Received: (from root@localhost) by dyson.iquest.net (8.7.5/8.6.9) id TAA05654; Thu, 11 Apr 1996 19:35:25 -0500 (EST) From: "John S. Dyson" Message-Id: <199604120035.TAA05654@dyson.iquest.net> Subject: Re: HDD cpu usage (IDE vs. SCSI). To: luigi@labinfo.iet.unipi.it (Luigi Rizzo) Date: Thu, 11 Apr 1996 19:35:25 -0500 (EST) Cc: se@zpr.uni-koeln.de, bde@zeta.org.au, dutchman@spase.nl, freebsd-hackers@FreeBSD.org In-Reply-To: <199604111834.UAA15330@labinfo.iet.unipi.it> from "Luigi Rizzo" at Apr 11, 96 08:34:18 pm X-Mailer: ELM [version 2.4 PL24 ME8] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-hackers@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk > > Sorry for not trimming the message too much but the numbers sound > strange. > Yep... If you assume that the purpose of the benchmark is to measure total drive perf. Actually, it is meant to measure the interface overhead. > > but the numbers for the NCR probably suggest that data ought to be > averaged over a larger number of experiments. > True, but it still appears that the NCR/HAWK overhead is high. I would tend to suspect the HAWK more than the NCR -- but I simply do not know. > > Second, I guess you are measuring the SCSI/IDE/EIDE bus transfer speed, > rather than the disk transfer speed, isn't it ? > Yes. The purpose of the benchmark appears to be to measure the interface performance -- not necessarily the drive itself. > > Also, how comes that a 2X CDROM has such a low speed ? > Apparently the SCSI overhead of the TOSIBA XM-3401TA is very very high. > > Third, what do you mean by "Standard IDE" vs EIDE ? Isn't it rather an > ISA vs. VLB/PCI comparison ? I have tried both a WDC540 and a WDC1.6GB, > and the 540 gets a maximum speed (with iozone or bonnie) of some > 2.2MB/s at most, no matter how fast is the interface or the system. > It is standard IDE timing vs. MODE 3/4 timing. PCI interface isn't important here -- IDE is kind-of an ISA bus with perhaps modified timing. Below is the performance on my WDC540H (the good one with the big cache), using bonnie and MODE3 +- timing. -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 100 1663 35.2 2797 11.9 1017 5.2 2074 33.3 2868 7.5 62.5 2.7 > Instead, the WDC 1.6GB (as you also experienced) is rated at 5.5MB/s on > the same system). > > > Standard IDE W/WDC540H > > Command overhead is 436 usec (time_4096 = 2001, time_8192 = 3565) > > transfer speed is 2.61859e+06 bytes/sec > > Command overhead is 436 usec (time_4096 = 2002, time_8192 = 3568) > > transfer speed is 2.61586e+06 bytes/sec > > This says NO MATTER what the drive can do, the max xfer rate is 2.6MBytes per second using regular IDE timing. At that rate, it is likely that there will be 100% CPU utlization just for the I/O xfer :-(. > > EIDE W/WDC540H > > Command overhead is 375 usec (time_4096 = 814, time_8192 = 1254) > > transfer speed is 9.31994e+06 bytes/sec > > Command overhead is 368 usec (time_4096 = 800, time_8192 = 1231) > > transfer speed is 9.49095e+06 bytes/sec > > This says that the WDC540H is capable of much better than IDE timing. Note that it is likely that the CPU overhead is much much less using enhanced timing, even though the drive is not capable of much better than 2.7-2.8MBytes/sec. There are lots more CPU wait states when transferring in standard IDE mode than in MODE3. > > EIDE W/WDC 1.6GB > > Command overhead is 217 usec (time_4096 = 513, time_8192 = 809) > > transfer speed is 1.38444e+07 bytes/sec > > Command overhead is 196 usec (time_4096 = 502, time_8192 = 808) > > transfer speed is 1.33987e+07 bytes/sec > This says that the EIDE 1.6Gbyte drive has very quick command overhead, and can transfer between the drives buffer and CPU at 13MBytes/sec (perhaps more, but that is what my machine does with it.) The actual platter transfer rate through FFS is shown below: -------Sequential Output-------- ---Sequential Input-- --Random-- -Per Char- --Block--- -Rewrite-- -Per Char- --Block--- --Seeks--- Machine MB K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU K/sec %CPU /sec %CPU 100 1816 39.5 5442 25.8 1881 9.2 2271 37.6 5628 13.4 89.6 3.6 BTW, next time I want to driver-hack, I plan to work on Garrett's submission of the DMA code for Triton EIDE. It would be interesting to see (on an experimental basis) if the CPU loading is significantly decreased further. John dyson@freebsd.org