Subject: Re: IBM drives vs Adaptec controllers/driver [was Re: 10G IBM ide hard disk]
To: NetBSD-current Discussion List <current-users@netbsd.org>
From: Greg A. Woods <woods@most.weird.com>
List: current-users
Date: 01/22/1999 16:44:10
[ On , January 22, 1999 at 10:30:43 (+0100), Sean Doran wrote: ]
> Subject: Re: IBM drives vs Adaptec controllers/driver [was Re: 10G IBM ide hard disk]
>
> Bizarro. I have no problem with my IBM disks getting 20 MHz
> on an AHA2940UW controller. On my machine at home, I
> use only IBM drives, and "options AHC_TAGENABLE" is a
> great performance boost. (I have a Quantum at work for
> the moment and it will lock up when that option is set).
Ah ha! Thanks for the reminder Sean!
I enabled both AHC_TAGENABLE and AHC_SCBPAGING_ENABLE with much more
appreciable results. (These options should probably be mentioned in the
"GENERIC" config file for every machine that's capable of hosting a
7xxx.c host adapter....) I hadn't thought to turn on those options on
my development machine (running 1.3I) because it was getting 9MB/s on my
Quantum Viking drives. As soon as I get time to re-import the latest
sup I'll try them on -current with the vikings and see how fast it'll
go. Maybe that'll make me feel less upset that I didn't fork out for
10000 RPM drives when I had the chance.... ;-)
Anyway, here's what it says on boot now:
ahc0 at pci1 dev 4 function 0
ahc0: interrupting at irq 14
ahc0: Using left over BIOS settings
ahc0: aic7880 Wide Channel, SCSI Id=7, 16 SCBs
scsibus0 at ahc0 channel 0: 16 targets
ahc0: target 0 using 16Bit transfers
ahc0: target 0 synchronous at 10.0MHz, offset = 0x8
ahc0: target 0 Tagged Queuing Device
sd0 at scsibus0 targ 0 lun 0: <IBM, DGHS09U, 0350> SCSI3 0/direct fixed
sd0: 8748MB, 8152 cyl, 10 head, 219 sec, 512 bytes/sect x 17916240 sectors
ahc0: target 1 using 16Bit transfers
ahc0: target 1 synchronous at 10.0MHz, offset = 0x8
ahc0: target 1 Tagged Queuing Device
sd1 at scsibus0 targ 1 lun 0: <IBM, DGHS09U, 0350> SCSI3 0/direct fixed
sd1: 8748MB, 8152 cyl, 10 head, 219 sec, 512 bytes/sect x 17916240 sectors
and from iozone:
Writing the 300 Megabyte file, 'iozone.tmp'...26.030000 seconds
Reading the file...25.710000 seconds
IOZONE performance measurements:
12085009 bytes/second for writing the file
12235425 bytes/second for reading the file
and from Bonnie:
-------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
133-SCSI 300 11273 75.9 11498 35.9 2908 8.2 10149 65.5 12043 18.6 108.0 2.2
Unfortunately this hasn't improved the performance of the raw drives
with dd to the same extent as the IBM DCAS-34330 drives and I still get
only about 5MB/s from drive to drive:
# dd if=/dev/rsd0d of=/dev/rsd1d bs=64k
^?985+0 records in
984+0 records out
64487424 bytes transferred in 13 secs (4960571 bytes/sec)
The DCAS-34330's were showing as much as 9.9MB/s on the same dd command,
and without any AHC_* options enabled.... Ah, I think I see the
problem! These drives have a much slower raw write speed than read
speed:
# dd if=/dev/rsd1d of=/dev/null bs=64k
^?1369+0 records in
1369+0 records out
89718784 bytes transferred in 6 secs (14953130 bytes/sec)
# dd if=/dev/rsd1d of=/dev/null bs=1m
^?116+0 records in
116+0 records out
121634816 bytes transferred in 8 secs (15204352 bytes/sec)
# dd if=/dev/zero of=/dev/rsd1d bs=64k
^?842+0 records in
841+0 records out
55115776 bytes transferred in 11 secs (5010525 bytes/sec)
# dd if=/dev/zero of=/dev/rsd1d bs=1m
^?63+0 records in
62+0 records out
65011712 bytes transferred in 14 secs (4643693 bytes/sec)
That still makes me wonder why iozone and Bonnie got as good a write
numbers as they did...... Perhaps the raw disk device is the reason,
but that doesn't explain why the DCAS-34330's go almost twice as fast
with raw device copies. Using the block device gets atrocious speeds
though....
FYI the Quantum Vikings, without AHC_* options, on 1.3I give the
following iozone and Bonnie results:
Writing the 100 Megabyte file, 'iozone.tmp'...11.390000 seconds
Reading the file...10.490000 seconds
IOZONE performance measurements:
9206110 bytes/second for writing the file
9995958 bytes/second for reading the file
-------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
1.3I-SCSI 100 8063 51.6 7938 16.7 2317 4.9 6930 45.9 8970 10.4 95.4 1.7
Another 1.3.3 Pentium-133Mhz machine, with a FUJITSU MPC3043AT IDE drive:
-------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
1.3.3-IDE 100 2707 79.5 5875 75.8 2286 13.1 2165 70.0 4426 69.3 80.1 4.1
> I'm using the PCI-based Adaptec card at the office because of:
>
> Adaptec product 0x7895 (SCSI mass storage, revision 0x04) at pci0 dev 20 functio
> n 0 not configured
> Adaptec product 0x7895 (SCSI mass storage, revision 0x04) at pci0 dev 20 functio
> n 1 not configured
>
> No support for on-motherboard thing. Oh well. :(
A dual channel chip! Nice! Too bad you need Justin's new driver for
that, and it needs SCAM. ;-)
> BTW, are you sure the drives will do 80MHz, or is that 80 MB/s
> (2 bytes per transfer, 40 MHz clock)?
I don't know for sure -- It's hard to tell if some of what's on their
product specs page is marketing speak or not.
Either 80MHz or 80MB/s would be better than 10MHz, I think, though
with the iozone numbers above I'm not nearly so worried....
I booted FreeBSD-3.0-RELEASE on my development machine (with the Quantum
Vikings) and they (along with the IBM CD-ROM too I think) were reported
as negotiating 20MHz, 16-bit transfers.
> ahc0 at pci0 dev 9 function 0
> ahc0: interrupting at irq 15
> ahc0: aic7880 Wide Channel, SCSI Id=7, 16 SCBs
> scsibus0 at ahc0 channel 0: 16 targets, 8 luns per target
> ahc0: target 1 using 16Bit transfers
> ahc0: target 1 synchronous at 20.0MHz, offset = 0x8
> ahc0: target 1 Tagged Queuing Device
> sd0 at scsibus0 targ 1 lun 0: <IBM, DGHS09U, 0350> SCSI3 0/direct fixed
> sd0: 8748MB, 8152 cyl, 10 head, 219 sec, 512 bytes/sect x 17916240 sectors
You've got the exact same model and revision drive I do, and yet you're
getting 20MHz! :-(
Maybe there's some difference in the aic7880 firmware on your adaptec
card that's not in my on-board version....
What are your iozone and/or Bonnie numbers for those DGHS09U's?
Do you get good numbers for raw disk-to-disk copies with dd?
--
Greg A. Woods
+1 416 218-0098 VE3TCP <gwoods@acm.org> <robohack!woods>
Planix, Inc. <woods@planix.com>; Secrets of the Weird <woods@weird.com>