Date: Mon, 16 Jun 2003 23:03:43 -0700 (PDT) From: David Yucht <davey@ecst.csuchico.edu> To: freebsd-hardware@freebsd.org Subject: Abysmal RAID1 write performance; ATA driver? Message-ID: <Pine.GHP.4.05.10306162253340.20308-100000@smilodon.ecst.csuchico.edu>
next in thread | raw e-mail | index | archive | help
Finally getting around to asking for assistance with a bizarre problem with mirrored raid performance on 4.6-4.8 RELEASE. I've been using this particular system for about 18 months as a primary fileserver for my home lan and have had a nagging problem with it for about a year. Basically, one of the mirrored arrays on the box has a sustained write speed of about 1.2-1.8MB/s, making the box pretty much impossible to work with directly. The array works fine in Windows, just not Free. Right now there are 4 drives on two seperate RAID controllers (yes, the cruddy wannabe kind), one array being the OS and the other for data. ar0 is the data array, consisting of two 80GB IBM 120GXPs hung off an old Promise Fasttrak 100 flashed to the most recent bios. ar1 is the system array, composed of two 40GB IBM 60GXPs on an integrated HPT370. Read performance on the data array is perfectly fine. Doing a simple "dd if=/dev/ar0 of=/dev/null bs=1024k" results in a transfer rate of about 45MB/s. This is as expected, given a result of 38MB/s for the system array. However, once switching over to write data to the data array, things crap out. Doing a "dd if=/dev/zero of=/dev/ar0 bs=1024k" takes days, literally, as the speed is about 1.2-1.8 MB/s. On the system array, things are normal, about 20-30MB/s for writes. Please note, though, that when the disks are accessed independently on the data array, write performance is 35MB/s, i.e. perfectly normal. Disk performance is also up around 60MB/s for RAID0 arrays, so everything leads me to believe this is not hardware. I've been working on this problem on and off for the past year as time permits. So far I've tried tuning just about every relevant kernel value, destroying and recreating the array, digging around for patches and/or hacks, and covered all bases with the actual hardware. Different kernel configs have not helped, GENERIC results in problems as do home rolled configs. I've searched far and wide accross forums, various newsgroups, and spent more time with google than family. Still no clue and nobody else with a similar problem. Yes, I am considering replacing the controller, but will be unable to do so for a few more months. That still doesn't satisfy my need for knowing why this is happening, though. ~Regards Here are the relevant dumps: dmesg ---------------------- FreeBSD 4.8-STABLE #0: Tue May 27 22:34:34 PDT 2003 root@invalid.domain.net:/usr/obj/usr/src/sys/LITE Timecounter "i8254" frequency 1193182 Hz CPU: Intel(R) Celeron(TM) CPU 1100MHz (1115.37-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x6b1 Stepping = 1 Features=0x383f9ff< FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MC A,CMOV,PAT,PSE36,MMX,FXSR,SSE> real memory = 536805376 (524224K bytes) avail memory = 518930432 (506768K bytes) Preloaded elf kernel "kernel" at 0xc0354000. Pentium Pro MTRR support enabled md0: Malloc disk Using $PIR table, 11 entries at 0xc00fd950 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 agp0: <Intel 82815 (i815 GMCH) host to PCI bridge> mem 0xd0000000-0xd3ffffff at device 0.0 on pci0 pcib1: <Intel 82801BA/BAM (ICH2) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <3Dfx Voodoo 3 graphics accelerator> at 0.0 irq 5 pcib2: <Intel 82801BA/BAM (ICH2) Hub to PCI bridge> at device 30.0 on pci0 pci2: <PCI bus> on pcib2 atapci0: <Promise ATA100 controller> port 0xa000-0xa03f,0x9c00-0x9c03,0x9800-0x9807,0x9400-0x9403,0x9000-0x9007 mem 0xdb000000-0xdb01ffff irq 15 at device 1.0 on pci2 ata2: at 0x9000 on atapci0 ata3: at 0x9800 on atapci0 fxp0: <Intel 82557/8/9 EtherExpress Pro/100(B) Ethernet> port 0xa400-0xa43f mem 0xdb020000-0xdb03ffff,0xdb040000-0xdb040fff irq 14 at device 3.0 on pci2 fxp0: Ethernet address 00:02:b3:c9:4e:70 inphy0: <i82555 10/100 media interface> on miibus0 inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto atapci1: <HighPoint HPT370 ATA100 controller> port 0xb800-0xb8ff,0xb400-0xb403,0xb000-0xb007,0xac00-0xac03,0xa800-0xa807 irq 11 at device 6.0 on pci2 ata4: at 0xa800 on atapci1 ata5: at 0xb000 on atapci1 isab0: <Intel 82801BA/BAM (ICH2) PCI to LPC bridge> at device 31.0 on pci0 isa0: <ISA bus> on isab0 uhci0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> port 0xd000-0xd01f irq 14 at device 31.2 on pci0 usb0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> on uhci0 usb0: USB revision 1.0 uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x8086, dev=0x2443) at 31.3 irq 0 uhci1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> port 0xd400-0xd41f irq 7 at device 31.4 on pci0 usb1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> on uhci1 usb1: USB revision 1.0 uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub1: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x8086, dev=0x2445) at 31.5 irq 15 orm0: <Option ROMs> at iomem 0xc0000-0xc7fff,0xc8000-0xcbfff,0xcc000-0xd47ff,0xd5000-0xd67ff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 ata0 at port 0x1f0-0x1f7,0x3f6 irq 14 on isa0 ata1 at port 0x170-0x177,0x376 irq 15 on isa0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model IntelliMouse, device ID 3 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1: configured irq 3 not in bitmap of probed irqs 0 ppc0: parallel port not found. ar0: 78533MB <ATA RAID1 array> [10011/255/63] status: READY subdisks: 0 READY ad4: 78533MB <IC35L080AVVA07-0> [159560/16/63] at ata2-master UDMA100 1 READY ad6: 78533MB <IC35L080AVVA07-0> [159560/16/63] at ata3-master UDMA100 ar1: 39266MB <ATA RAID1 array> [5005/255/63] status: READY subdisks: 0 READY ad8: 39266MB <IC35L040AVER07-0> [79780/16/63] at ata4-master tagged UDMA100 1 READY ad10: 39266MB <IC35L040AVER07-0> [79780/16/63] at ata5-master tagged UDMA100 Mounting root from ufs:/dev/ar1s1a ar0: 78533MB <ATA RAID1 array> [10011/255/63] status: READY subdisks: 0 READY ad4: 78533MB <IC35L080AVVA07-0> [159560/16/63] at ata2-master UDMA100 1 READY ad6: 78533MB <IC35L080AVVA07-0> [159560/16/63] at ata3-master UDMA100 /dmesg ---------------------- atacontrol list ------------- ATA channel 0: Master: no device present Slave: no device present ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <IC35L080AVVA07-0/VA4OA52A> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <IC35L080AVVA07-0/VA4OA52A> ATA/ATAPI rev 5 Slave: no device present ATA channel 4: Master: ad8 <IC35L040AVER07-0/ER4OA46A> ATA/ATAPI rev 5 Slave: no device present ATA channel 5: Master: ad10 <IC35L040AVER07-0/ER4OA44A> ATA/ATAPI rev 5 Slave: no device present /atacontrol list -------------- sysctl -a | grep ata ---------- hw.ata.ata_dma: 1 hw.ata.wc: 1 hw.ata.tags: 1 hw.ata.atapi_dma: 0 /sysctl -a | grep ata --------- Note - ATA channel 0 & 1 are both unused and disabled in the bios, as is the parallel port and one of the serials. If anyone has a quick explanation or link as to why Free still detects disabled hardware, I'd also be appreciative. David Yucht davey@ecst.csuchico.edu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GHP.4.05.10306162253340.20308-100000>