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>