poor sata performance on 2.6

From: Konstantin Sobolev
Date: Wed Apr 14 2004 - 18:10:06 EST


Hi,

I recently got a new sata disk and must say that it's performace is totally
unacceptable, on both siimage and sata_sil drivers. DMA is turned on.

More details: MB is EPoX 8k9a2+, KT400 chipset, it has embedded Sil3112a SATA
controller. HDD is WD740GD (10k RPM, 8MB cache), also tried WD360GD, got
absolutely the same results. Tried lots of different 2.6 kernels: 2.6.4-ck1,
-ck2, -wolk2.3 and 2.6.5 vanilla and -mm5. No difference. Tried to
enable/disable APIC and ACPI and even removed all hardware sharing the same
IRQ. Nothing changed. Transfer speed was measured using hdparm -Tt. Results
for siimage driver:

/dev/hde:
Timing buffer-cache reads: 1436 MB in 2.00 seconds = 717.03 MB/sec
Timing buffered disk reads: 100 MB in 3.03 seconds = 32.95 MB/sec

for sata_sil:

/dev/sda:
Timing buffer-cache reads: 1412 MB in 2.00 seconds = 705.05 MB/sec
Timing buffered disk reads: 84 MB in 3.06 seconds = 27.43 MB/sec

So my old IDE HDD appears to be considerably faster. Expected results were
55-70MB/s.

Playing with hdparm gives nothing (-d1 -u1 -c1 -X70 -m16 gives +3MB/s
'boost').

hdparm -i:

Model=WDC WD740GD-00FLA0, FwRev=21.08U21, SerialNo=WD-WMAKE1059828
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=57600, SectSize=600, ECCbytes=74
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=off
CurCHS=65535/1/63, CurSects=4128705, LBA=yes, LBAsects=145226112
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=no WriteCache=enabled
Drive conforms to: device does not report version:

lspci -vvv output is attached.

dmesg for siimage:

SiI3112 Serial ATA: IDE controller at PCI slot 0000:00:0f.0
SiI3112 Serial ATA: chipset revision 2
SiI3112 Serial ATA: 100% native mode on irq 185
ide2: MMIO-DMA , BIOS settings: hde:pio, hdf:pio
ide3: MMIO-DMA , BIOS settings: hdg:pio, hdh:pio
hde: WDC WD740GD-00FLA0, ATA DISK drive
ide2 at 0xf99bb080-0xf99bb087,0xf99bb08a on irq 185
hde: max request size: 64KiB
hde: 145226112 sectors (74355 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(133)
hde: unknown partition table

dmesg for libata:

libata version 1.02 loaded.
sata_sil version 0.54
PCI: Found IRQ 12 for device 0000:00:0f.0
PCI: Sharing IRQ 12 with 0000:00:0a.0
PCI: Sharing IRQ 12 with 0000:00:10.2
ata1: SATA max UDMA/100 cmd 0xF99B3080 ctl 0xF99B308A bmdma 0xF99B3000 irq 12
ata2: SATA max UDMA/100 cmd 0xF99B30C0 ctl 0xF99B30CA bmdma 0xF99B3008 irq 12
ata1: dev 0 cfg 49:2f00 82:74eb 83:7f63 84:4003 85:74e9 86:3c43 87:4003
88:207f
ata1: dev 0 ATA, max UDMA/133, 145226112 sectors (lba48)
ata1: dev 0 configured for UDMA/100
scsi0 : sata_sil
ata2: no device found (phy stat 00000000)
scsi1 : sata_sil
ata2: thread exiting
Vendor: ATA Model: WDC WD740GD-00FL Rev: 1.02
Type: Direct-Access ANSI SCSI revision: 05
ata1: dev 0 max request 32MB (lba48)
SCSI device sda: 145226112 512-byte hdwr sectors (74356 MB)
SCSI device sda: drive cache: write through
sda:<6>USB Universal Host Controller Interface driver v2.2
PCI: Found IRQ 5 for device 0000:00:10.0
PCI: Sharing IRQ 5 with 0000:00:12.0

(IRQ's are different because first run was with ACPI used for IRQ routing, and
second was with 'acpi=off noapic')

I'm really eager to find a solution for this problem.

Thanks
--
/KoS
* Did you receive a proper socialist education?

Attachment: lspci.txt.gz
Description: GNU Zip compressed data