Most recent kernel where this bug did not occur: 2.6.17 Distribution: Linux Debian 3.1 Sarge Hardware Environment: m/b ABIT BE6-II ( HPT BIOS updated for LBA48), HDD Seagate ST3160212A 160GB PATA firmware version 3AAJ Software Environment: GRUB boot loader Problem Description: HPT370 max UDMA mode is UDMA66 with the IDE (non-experimantal) driver, and UDMA44 with the LibATA (experimantal) one. Steps to reproduce: just boot with kernel newer than 2.6.17. The drive is bootable. The GIT versions of kernel ( containing some HPT patches ) don't fix the problem.
(In reply to comment #0) > Most recent kernel where this bug did not occur: 2.6.17 > Distribution: Linux Debian 3.1 Sarge The libata PATA drivers were merged in the 2.6.19-rc1 time, IIRC. Maybe they have pulled in PATA support from that kernel? > Hardware Environment: > m/b ABIT BE6-II ( HPT BIOS updated for LBA48), HDD Seagate ST3160212A 160GB > PATA firmware version 3AAJ > Software Environment: GRUB boot loader > Problem Description: > HPT370 max UDMA mode is UDMA66 with the IDE (non-experimantal) driver, and Has been lowered from UDMA100 on purpose: my testing had shown that UDMA66 reads outperforms UDMA100 reads by about 8 MiB/s. And anyway this mode needed the infamous clock switching trick that had been removed from the driver long ago... > UDMA44 with the LibATA (experimantal) one. Ah, so it's the libata's error actually -- should be assigned to Jeff or Alan...
> > HPT370 max UDMA mode is UDMA66 with the IDE (non-experimantal) driver, and > Has been lowered from UDMA100 on purpose: my testing had shown that UDMA66 > reads outperforms UDMA100 reads by about 8 MiB/s. And anyway this mode needed > the infamous clock switching trick that had been removed from the driver > >long > ago... Me've rechecked for both these modes: time dd bs=512 count=1000000 if=/dev/zero of=/tmp/test.bin time dd bs=512 count=1000000 if=/tmp/test.bin of=/dev/null Ext3fs, 256M RAM, with the resulting size to test of 512M ( twice as bigger thah possible file system cache ) . The results: Writting: udma100/udma66 = 20sec/22sec=25.6MBpS/23.3MBpS = udma100 wins by 14% Reading: udma100/udma66 = 14sec/11sec=35.6MBpS/46.6MBpS = udma66 wins by 30% Really, as to reading speed, udma66 has significant advantage. But modern HDDs have zero track transfer rates which exceed udma66 bandwidth - ST316212A PATA has near 80MBpS, etc. Won't it cause handshaking and stream control problems ? These thoughts are inspired by the writting advantage of udma100. HDPARM confirms that udma4 is switched on in the drive when udma66. BTW, have You tested the things on empty drives where transfer is faster since closer to the zero track ?
(In reply to comment #2) > But modern HDDs have zero track transfer rates which exceed udma66 bandwidth > - > ST316212A PATA has near 80MBpS, etc. Won't it cause handshaking and stream > control problems ? These thoughts are inspired by the writting advantage of > udma100. > BTW, have You tested the things on empty drives where transfer is faster > since > closer to the zero track ? I was testing with hdparm -t, so the drive was "virtually empty", i.e. accessed directly. :-)
(In reply to comment #1) > > UDMA44 with the LibATA (experimantal) one. > Ah, so it's the libata's error actually -- should be assigned to Jeff or > Alan... So, moving the bug to Serial ATA (although HPT370 is PATA) to get it properly assigned.
> I was testing with hdparm -t, so the drive was "virtually empty", i.e. > >accessed directly. :-) BTW, me got the reverse result with ST316212A - UDMA100 wins by 9 MBpS (65 to 56) :) Sometimes writting transfer in UDMA100 is significally higher than in UDMA66 (30 to 22). It may be important for systems with large memory and periodical massive writting - FSYNC of DB servers etc. But the integrated (create / write / read / delete) performance in UDMA66 is higher for systems where files fit free memory anyway. Turned out with the following script : #------------------------ #!/bin/sh CNT=0 FREEMEM=`free -b | sed "2!d" | awk '{print $4}'` PIECE=`expr $FREEMEM / 25 / 512` time for ((i=1;$i<=25;i++)); do CNT=`expr $PIECE \* $i` dd bs=512 count=$CNT if=/dev/zero of=/tmp/test${i}.bin dd bs=512 count=$CNT if=/tmp/test${i}.bin of=/dev/null rm -f -- /tmp/test${i}.bin done #------------------------ UDMA100: 2 min 6 sec UDMA66: 1 min 49 sec
/me summons Alan.
Not enough info to even begin guessing - Which kernel - Dmesg on boot
(In reply to comment #5) > > I was testing with hdparm -t, so the drive was "virtually empty", i.e. > >accessed directly. :-) > BTW, me got the reverse result with ST316212A - UDMA100 wins by 9 MBpS (65 to > 56) :) Let me remind that the older driver on HPT370 did a clock switching trick Hmm, I was testing with another Seagate -- Brarracuda 7200.7, model ST340014A (that's far from tge top notch :-). > Sometimes writting transfer in UDMA100 is significally higher than in UDMA66 > (30 to 22). It may be important for systems with large memory and periodical > massive writting - FSYNC of DB servers etc. Interesting... the older, 2.6.18 driver was using DPLL clock for writes, and PCI for reads. > But the integrated (create / write / read / delete) performance in UDMA66 is > higher for systems where files fit free memory anyway. Turned out with the > following script : > #------------------------ > #!/bin/sh > > CNT=0 > > FREEMEM=`free -b | sed "2!d" | awk '{print $4}'` > PIECE=`expr $FREEMEM / 25 / 512` All that sounds quite like Greek to me. :-< > time for ((i=1;$i<=25;i++)); do > CNT=`expr $PIECE \* $i` > dd bs=512 count=$CNT if=/dev/zero of=/tmp/test${i}.bin > dd bs=512 count=$CNT if=/tmp/test${i}.bin of=/dev/null > rm -f -- /tmp/test${i}.bin > done > #------------------------ Thanks, will try that test... > UDMA100: 2 min 6 sec > UDMA66: 1 min 49 sec Thanks for proving my theory. :-)
14.08.07, 13:45, bugme-daemon@bugzilla.kernel.org: > http://bugzilla.kernel.org/show_bug.cgi?id=8848 > ------- Comment #7 from alan@lxorguk.ukuu.org.uk 2007-08-14 02:52 ------- > Not enough info to even begin guessing > - Which kernel > - Dmesg on boot Then boot logs : UDMA-100 boot log: Jul 28 18:03:11 localhost kernel: klogd 1.4.1#17, log source = /proc/kmsg started. Jul 28 18:03:11 localhost kernel: Inspecting /boot/System.map-2.6.17 Jul 28 18:03:11 localhost kernel: Loaded 20271 symbols from /boot/System.map-2.6.17. Jul 28 18:03:11 localhost kernel: Symbols match kernel version 2.6.17. Jul 28 18:03:11 localhost kernel: No module symbols loaded - kernel modules not enabled. Jul 28 18:03:11 localhost kernel: Linux version 2.6.17 (root@vano) (gcc version 3.3.5 (Debian 1:3.3.5-13)) #5 Sun Dec 10 16:54:03 UZT 2006 Jul 28 18:03:11 localhost kernel: BIOS-provided physical RAM map: ................. Jul 28 18:03:11 localhost kernel: Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 Jul 28 18:03:11 localhost kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx Jul 28 18:03:11 localhost kernel: PIIX4: IDE controller at PCI slot 0000:00:07.1 Jul 28 18:03:11 localhost kernel: PIIX4: chipset revision 1 Jul 28 18:03:11 localhost kernel: PIIX4: not 100%% native mode: will probe irqs later Jul 28 18:03:11 localhost kernel: ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:DMA Jul 28 18:03:11 localhost kernel: ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio Jul 28 18:03:11 localhost kernel: Probing IDE interface ide0... Jul 28 18:03:11 localhost kernel: hdb: ATAPI-CD ROM-DRIVE-52MAX, ATAPI CD/DVD-ROM drive Jul 28 18:03:11 localhost kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Jul 28 18:03:11 localhost kernel: Probing IDE interface ide1... Jul 28 18:03:11 localhost kernel: HPT370: IDE controller at PCI slot 0000:00:13.0 Jul 28 18:03:11 localhost kernel: PCI: Found IRQ 11 for device 0000:00:13.0 Jul 28 18:03:11 localhost kernel: HPT370: chipset revision 3 Jul 28 18:03:11 localhost kernel: HPT370: 100%% native mode on irq 11 Jul 28 18:03:11 localhost kernel: HPT37X: using 33MHz PCI clock Jul 28 18:03:11 localhost kernel: ide2: BM-DMA at 0xec00-0xec07, BIOS settings: hde:DMA, hdf:pio Jul 28 18:03:11 localhost kernel: HPT37X: using 33MHz PCI clock Jul 28 18:03:11 localhost kernel: ide3: BM-DMA at 0xec08-0xec0f, BIOS settings: hdg:pio, hdh:pio Jul 28 18:03:11 localhost kernel: Probing IDE interface ide2... Jul 28 18:03:11 localhost kernel: hde: ST3160212A, ATA DISK drive Jul 28 18:03:11 localhost kernel: ide2 at 0xdc00-0xdc07,0xe002 on irq 11 Jul 28 18:03:11 localhost kernel: Probing IDE interface ide3... Jul 28 18:03:11 localhost kernel: Probing IDE interface ide1... Jul 28 18:03:11 localhost kernel: Probing IDE interface ide3... Jul 28 18:03:11 localhost kernel: hde: max request size: 512KiB Jul 28 18:03:11 localhost kernel: hde: 312581808 sectors (160041 MB) w/2048KiB Cache, CHS=19457/255/63, UDMA(100) Jul 28 18:03:11 localhost kernel: hde: cache flushes supported Jul 28 18:03:11 localhost kernel: hde: hde1 hde2 < hde5 hde6 hde7 hde8 > Jul 28 18:03:11 localhost kernel: hdb: ATAPI 52X CD-ROM drive, 128kB Cache, UDMA(33) Jul 28 18:03:11 localhost kernel: Uniform CD-ROM driver Revision: 3.20 ============================= udma-66: Jul 15 11:24:00 localhost kernel: Symbols match kernel version 2.6.21. Jul 15 11:24:00 localhost kernel: No module symbols loaded - kernel modules not enabled. Jul 15 11:24:00 localhost kernel: Linux version 2.6.21 (root@vano) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #2 Wed May 23 21:15:39 UZT 2007 Jul 15 11:24:00 localhost kernel: BIOS-provided physical RAM map: Jul 15 11:24:00 localhost kernel: sanitize start Jul 15 11:24:00 localhost kernel: sanitize end Jul 15 11:24:00 localhost kernel: copy_e820_map() start: 0000000000000000 size: 000000000009fc00 end: 000000000009fc00 type: 1 Jul 15 11:24:00 localhost kernel: copy_e820_map() type is E820_RAM Jul 15 11:24:00 localhost kernel: copy_e820_map() start: 000000000009fc00 size: 0000000000000400 end: 00000000000a0000 type: 2 Jul 15 11:24:00 localhost kernel: copy_e820_map() start: 00000000000f0000 size: 0000000000010000 end: 0000000000100000 type: 2 Jul 15 11:24:00 localhost kernel: copy_e820_map() start: 0000000000100000 size: 000000000fef0000 end: 000000000fff0000 type: 1 Jul 15 11:24:00 localhost kernel: copy_e820_map() type is E820_RAM Jul 15 11:24:00 localhost kernel: copy_e820_map() start: 000000000fff0000 size: 0000000000003000 end: 000000000fff3000 type: 4 Jul 15 11:24:00 localhost kernel: copy_e820_map() start: 000000000fff3000 size: 000000000000d000 end: 0000000010000000 type: 3 Jul 15 11:24:00 localhost kernel: copy_e820_map() start: 00000000ffff0000 size: 0000000000010000 end: 0000000100000000 type: 2 Jul 15 11:24:00 localhost kernel: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) Jul 15 11:24:00 localhost kernel: BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) Jul 15 11:24:00 localhost kernel: BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) Jul 15 11:24:00 localhost kernel: BIOS-e820: 0000000000100000 - 000000000fff0000 (usable) Jul 15 11:24:00 localhost kernel: BIOS-e820: 000000000fff0000 - 000000000fff3000 (ACPI NVS) Jul 15 11:24:00 localhost kernel: BIOS-e820: 000000000fff3000 - 0000000010000000 (ACPI data) Jul 15 11:24:00 localhost kernel: BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved) Jul 15 11:24:00 localhost kernel: 255MB LOWMEM available. Jul 15 11:24:00 localhost kernel: Entering add_active_range(0, 0, 65520) 0 entries of 256 used Jul 15 11:24:00 localhost kernel: Zone PFN ranges: Jul 15 11:24:00 localhost kernel: DMA 0 -> 4096 Jul 15 11:24:00 localhost kernel: Normal 4096 -> 65520 Jul 15 11:24:00 localhost kernel: early_node_map[1] active PFN ranges Jul 15 11:24:00 localhost kernel: 0: 0 -> 65520 Jul 15 11:24:00 localhost kernel: On node 0 totalpages: 65520 Jul 15 11:24:00 localhost kernel: DMA zone: 32 pages used for memmap Jul 15 11:24:00 localhost kernel: DMA zone: 0 pages reserved Jul 15 11:24:00 localhost kernel: DMA zone: 4064 pages, LIFO batch:0 Jul 15 11:24:00 localhost kernel: Normal zone: 479 pages used for memmap Jul 15 11:24:00 localhost kernel: Normal zone: 60945 pages, LIFO batch:15 Jul 15 11:24:00 localhost kernel: DMI 2.2 present. ............. Jul 15 11:24:00 localhost kernel: Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 Jul 15 11:24:00 localhost kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx Jul 15 11:24:00 localhost kernel: PIIX4: IDE controller at PCI slot 0000:00:07.1 Jul 15 11:24:00 localhost kernel: PIIX4: chipset revision 1 Jul 15 11:24:00 localhost kernel: PIIX4: not 100%% native mode: will probe irqs later Jul 15 11:24:00 localhost kernel: ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:DMA Jul 15 11:24:00 localhost kernel: ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:pio, hdd:pio Jul 15 11:24:00 localhost kernel: Probing IDE interface ide0... Jul 15 11:24:00 localhost kernel: hdb: ATAPI-CD ROM-DRIVE-52MAX, ATAPI CD/DVD-ROM drive Jul 15 11:24:00 localhost kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Jul 15 11:24:00 localhost kernel: Probing IDE interface ide1... Jul 15 11:24:00 localhost kernel: HPT370: IDE controller at PCI slot 0000:00:13.0 Jul 15 11:24:00 localhost kernel: PCI: setting IRQ 11 as level-triggered Jul 15 11:24:00 localhost kernel: PCI: Found IRQ 11 for device 0000:00:13.0 Jul 15 11:24:00 localhost kernel: HPT370: chipset revision 3 Jul 15 11:24:00 localhost kernel: HPT370: DPLL base: 48 MHz, f_CNT: 168, assuming 40 MHz PCI Jul 15 11:24:00 localhost kernel: HPT370: using 50 MHz DPLL clock Jul 15 11:24:00 localhost kernel: HPT370: 100%% native mode on irq 11 Jul 15 11:24:00 localhost kernel: ide2: BM-DMA at 0xec00-0xec07, BIOS settings: hde:DMA, hdf:pio Jul 15 11:24:00 localhost kernel: ide3: BM-DMA at 0xec08-0xec0f, BIOS settings: hdg:pio, hdh:pio Jul 15 11:24:00 localhost kernel: Probing IDE interface ide2... Jul 15 11:24:00 localhost kernel: hde: ST3160212A, ATA DISK drive Jul 15 11:24:00 localhost kernel: ide2 at 0xdc00-0xdc07,0xe002 on irq 11 Jul 15 11:24:00 localhost kernel: Probing IDE interface ide3... Jul 15 11:24:00 localhost kernel: Probing IDE interface ide1... Jul 15 11:24:00 localhost kernel: Probing IDE interface ide3... Jul 15 11:24:00 localhost kernel: hde: max request size: 512KiB Jul 15 11:24:00 localhost kernel: hde: 312581808 sectors (160041 MB) w/2048KiB Cache, CHS=19457/255/63, UDMA(66) Jul 15 11:24:00 localhost kernel: hde: cache flushes supported Jul 15 11:24:00 localhost kernel: hde: hde1 hde2 < hde5 hde6 hde7 hde8 > Jul 15 11:24:00 localhost kernel: hdb: ATAPI 52X CD-ROM drive, 128kB Cache, UDMA(33) Jul 15 11:24:00 localhost kernel: Uniform CD-ROM driver Revision: 3.20 ===================================== udma-33/44 ( LibATA, with SCSI access ): Jul 28 17:47:09 localhost kernel: Symbols match kernel version 2.6.22. Jul 28 17:47:09 localhost kernel: No module symbols loaded - kernel modules not enabled. Jul 28 17:47:09 localhost kernel: Linux version 2.6.22-git1 (root@vano) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #3 Sat Jul 28 17:42:54 UZT 2007 Jul 28 17:47:09 localhost kernel: BIOS-provided physical RAM map: Jul 28 17:47:09 localhost kernel: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) Jul 28 17:47:09 localhost kernel: BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) Jul 28 17:47:09 localhost kernel: BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) Jul 28 17:47:09 localhost kernel: BIOS-e820: 0000000000100000 - 000000000fff0000 (usable) Jul 28 17:47:09 localhost kernel: BIOS-e820: 000000000fff0000 - 000000000fff3000 (ACPI NVS) Jul 28 17:47:09 localhost kernel: BIOS-e820: 000000000fff3000 - 0000000010000000 (ACPI data) Jul 28 17:47:09 localhost kernel: BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved) Jul 28 17:47:09 localhost kernel: 255MB LOWMEM available. Jul 28 17:47:09 localhost kernel: Entering add_active_range(0, 0, 65520) 0 entries of 256 used Jul 28 17:47:09 localhost kernel: Zone PFN ranges: Jul 28 17:47:09 localhost kernel: DMA 0 -> 4096 Jul 28 17:47:09 localhost kernel: Normal 4096 -> 65520 Jul 28 17:47:09 localhost kernel: early_node_map[1] active PFN ranges Jul 28 17:47:09 localhost kernel: 0: 0 -> 65520 Jul 28 17:47:09 localhost kernel: On node 0 totalpages: 65520 Jul 28 17:47:09 localhost kernel: DMA zone: 32 pages used for memmap Jul 28 17:47:09 localhost kernel: DMA zone: 0 pages reserved Jul 28 17:47:09 localhost kernel: DMA zone: 4064 pages, LIFO batch:0 Jul 28 17:47:09 localhost kernel: Normal zone: 479 pages used for memmap Jul 28 17:47:09 localhost kernel: Normal zone: 60945 pages, LIFO batch:15 .................... Jul 28 17:47:09 localhost kernel: Kernel command line: root=/dev/hde8 ro max_loop=32 root=/dev/sda8 Jul 28 17:47:09 localhost kernel: Enabling fast FPU save and restore... done. Jul 28 17:47:09 localhost kernel: Enabling unmasked SIMD FPU exception support... done. Jul 28 17:47:09 localhost kernel: Initializing CPU#0 Jul 28 17:47:09 localhost kernel: PID hash table entries: 1024 (order: 10, 4096 bytes) Jul 28 17:47:09 localhost kernel: Detected 724.885 MHz processor. Jul 28 17:47:09 localhost kernel: Console: colour VGA+ 80x25 Jul 28 17:47:09 localhost kernel: Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) Jul 28 17:47:09 localhost kernel: Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) Jul 28 17:47:09 localhost kernel: Memory: 256784k/262080k available (1640k kernel code, 4792k reserved, 635k data, 124k init, 0k highmem) Jul 28 17:47:09 localhost kernel: virtual kernel memory layout: Jul 28 17:47:09 localhost kernel: fixmap : 0xffffd000 - 0xfffff000 ( 8 kB) Jul 28 17:47:09 localhost kernel: vmalloc : 0xd0800000 - 0xffffb000 ( 759 MB) Jul 28 17:47:09 localhost kernel: lowmem : 0xc0000000 - 0xcfff0000 ( 255 MB) Jul 28 17:47:09 localhost kernel: .init : 0xc033c000 - 0xc035b000 ( 124 kB) Jul 28 17:47:09 localhost kernel: .data : 0xc029a235 - 0xc0338fe4 ( 635 kB) Jul 28 17:47:09 localhost kernel: .text : 0xc0100000 - 0xc029a235 (1640 kB) Jul 28 17:47:09 localhost kernel: Checking if this processor honours the WP bit even in supervisor mode... Ok. Jul 28 17:47:09 localhost kernel: Calibrating delay using timer specific routine.. 1450.80 BogoMIPS (lpj=2901603) Jul 28 17:47:09 localhost kernel: Mount-cache hash table entries: 512 Jul 28 17:47:09 localhost kernel: CPU: After generic identify, caps: 0387f9ff 00000000 00000000 00000000 00000000 00000000 00000000 Jul 28 17:47:09 localhost kernel: CPU: L1 I cache: 16K, L1 D cache: 16K Jul 28 17:47:09 localhost kernel: CPU: L2 cache: 256K Jul 28 17:47:09 localhost kernel: CPU serial number disabled. Jul 28 17:47:09 localhost kernel: CPU: After all inits, caps: 0383f9ff 00000000 00000000 00000040 00000000 00000000 00000000 Jul 28 17:47:09 localhost kernel: Intel machine check architecture supported. Jul 28 17:47:09 localhost kernel: Intel machine check reporting enabled on CPU#0. Jul 28 17:47:09 localhost kernel: Compat vDSO mapped to ffffe000. Jul 28 17:47:09 localhost kernel: CPU: Intel Pentium III (Coppermine) stepping 03 Jul 28 17:47:09 localhost kernel: Checking 'hlt' instruction... OK. Jul 28 17:47:09 localhost kernel: NET: Registered protocol family 16 Jul 28 17:47:09 localhost kernel: PCI: PCI BIOS revision 2.10 entry at 0xfb520, last bus=1 Jul 28 17:47:09 localhost kernel: PCI: Using configuration type 1 Jul 28 17:47:09 localhost kernel: Setting up standard PCI resources Jul 28 17:47:09 localhost kernel: Linux Plug and Play Support v0.97 (c) Adam Belay Jul 28 17:47:09 localhost kernel: PnPBIOS: Scanning system for PnP BIOS support... Jul 28 17:47:09 localhost kernel: PnPBIOS: Found PnP BIOS installation structure at 0xc00fbed0 Jul 28 17:47:09 localhost kernel: PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xbf00, dseg 0xf0000 Jul 28 17:47:09 localhost kernel: PnPBIOS: 16 nodes reported by PnP BIOS; 16 recorded by driver Jul 28 17:47:09 localhost kernel: SCSI subsystem initialized Jul 28 17:47:09 localhost kernel: libata version 2.21 loaded. Jul 28 17:47:09 localhost kernel: PCI: Probing PCI hardware Jul 28 17:47:09 localhost kernel: PCI: Probing PCI hardware (bus 00) Jul 28 17:47:09 localhost kernel: PCI quirk: region 4000-403f claimed by PIIX4 ACPI Jul 28 17:47:09 localhost kernel: PCI quirk: region 5000-500f claimed by PIIX4 SMB Jul 28 17:47:09 localhost kernel: PCI: Using IRQ router PIIX/ICH [8086/7110] at 0000:00:07.0 Jul 28 17:47:09 localhost kernel: pnp: 00:07: iomem range 0x0-0x9ffff could not be reserved Jul 28 17:47:09 localhost kernel: pnp: 00:07: iomem range 0xfffe0000-0xffffffff could not be reserved Jul 28 17:47:09 localhost kernel: pnp: 00:07: iomem range 0x100000-0xfffffff could not be reserved Jul 28 17:47:09 localhost kernel: pnp: 00:08: iomem range 0xf0000-0xf3fff could not be reserved Jul 28 17:47:09 localhost kernel: pnp: 00:08: iomem range 0xf4000-0xf7fff could not be reserved Jul 28 17:47:09 localhost kernel: pnp: 00:08: iomem range 0xf8000-0xfffff could not be reserved Jul 28 17:47:09 localhost kernel: pnp: 00:08: iomem range 0xd3c00-0xd3fff has been reserved Jul 28 17:47:09 localhost kernel: pnp: 00:0b: ioport range 0x208-0x20f has been reserved Jul 28 17:47:09 localhost kernel: Time: tsc clocksource has been installed. Jul 28 17:47:09 localhost kernel: PCI: Bridge: 0000:00:01.0 Jul 28 17:47:09 localhost kernel: IO window: disabled. Jul 28 17:47:09 localhost kernel: MEM window: d8000000-d9ffffff Jul 28 17:47:09 localhost kernel: PREFETCH window: d0000000-d7ffffff Jul 28 17:47:09 localhost kernel: NET: Registered protocol family 2 Jul 28 17:47:09 localhost kernel: IP route cache hash table entries: 2048 (order: 1, 8192 bytes) Jul 28 17:47:09 localhost kernel: TCP established hash table entries: 8192 (order: 4, 65536 bytes) Jul 28 17:47:09 localhost kernel: TCP bind hash table entries: 8192 (order: 3, 32768 bytes) Jul 28 17:47:09 localhost kernel: TCP: Hash tables configured (established 8192 bind 8192) Jul 28 17:47:09 localhost kernel: TCP reno registered Jul 28 17:47:09 localhost kernel: Machine check exception polling timer started. Jul 28 17:47:09 localhost kernel: io scheduler noop registered Jul 28 17:47:09 localhost kernel: io scheduler anticipatory registered Jul 28 17:47:09 localhost kernel: io scheduler deadline registered Jul 28 17:47:09 localhost kernel: io scheduler cfq registered (default) Jul 28 17:47:09 localhost kernel: Limiting direct PCI/PCI transfers. Jul 28 17:47:09 localhost kernel: Boot video device is 0000:01:00.0 Jul 28 17:47:09 localhost kernel: isapnp: Scanning for PnP cards... Jul 28 17:47:09 localhost kernel: isapnp: Card 'U.S.Robotics Inc. Sportster Vi 28.8 Fax Voice Int' Jul 28 17:47:09 localhost kernel: isapnp: 1 Plug & Play card detected total Jul 28 17:47:09 localhost kernel: lp: driver loaded but no devices found Jul 28 17:47:09 localhost kernel: Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled Jul 28 17:47:09 localhost kernel: 00:0c: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A Jul 28 17:47:09 localhost kernel: 00:10: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A Jul 28 17:47:09 localhost kernel: pnp: Device 01:01.00 activated. Jul 28 17:47:09 localhost kernel: 01:01.00: ttyS2 at I/O 0x3e8 (irq = 5) is a 16550A Jul 28 17:47:09 localhost kernel: parport_pc 00:0f: reported by Plug and Play BIOS Jul 28 17:47:09 localhost kernel: parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] Jul 28 17:47:09 localhost kernel: lp0: using parport0 (interrupt-driven). Jul 28 17:47:09 localhost kernel: Floppy drive(s): fd0 is 1.44M Jul 28 17:47:09 localhost kernel: FDC 0 is a post-1991 82077 Jul 28 17:47:09 localhost kernel: loop: module loaded Jul 28 17:47:09 localhost kernel: PPP generic driver version 2.4.2 Jul 28 17:47:09 localhost kernel: PPP Deflate Compression module registered Jul 28 17:47:09 localhost kernel: PPP BSD Compression module registered Jul 28 17:47:09 localhost kernel: PPP MPPE Compression module registered Jul 28 17:47:09 localhost kernel: NET: Registered protocol family 24 Jul 28 17:47:09 localhost kernel: Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 Jul 28 17:47:09 localhost kernel: ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx Jul 28 17:47:09 localhost kernel: ata_piix 0000:00:07.1: version 2.11 Jul 28 17:47:09 localhost kernel: scsi0 : ata_piix Jul 28 17:47:09 localhost kernel: scsi1 : ata_piix Jul 28 17:47:09 localhost kernel: ata1: PATA max UDMA/33 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x0001f000 irq 14 Jul 28 17:47:09 localhost kernel: ata2: PATA max UDMA/33 cmd 0x00010170 ctl 0x00010376 bmdma 0x0001f008 irq 15 Jul 28 17:47:09 localhost kernel: ata1.01: ATAPI: ATAPI-CD ROM-DRIVE-52MAX, Ver 52PP, max UDMA/33 Jul 28 17:47:09 localhost kernel: ata1.01: configured for UDMA/33 Jul 28 17:47:09 localhost kernel: scsi 0:0:1:0: CD-ROM ATAPI-CD ROM-DRIVE-52MAX 52PP PQ: 0 ANSI: 5 Jul 28 17:47:09 localhost kernel: hpt37x: HPT370: Bus clock 33MHz. Jul 28 17:47:09 localhost kernel: PCI: setting IRQ 11 as level-triggered Jul 28 17:47:09 localhost kernel: PCI: Found IRQ 11 for device 0000:00:13.0 Jul 28 17:47:09 localhost kernel: scsi2 : pata_hpt37x Jul 28 17:47:09 localhost kernel: scsi3 : pata_hpt37x Jul 28 17:47:09 localhost kernel: ata3: PATA max UDMA/44 cmd 0x0001dc00 ctl 0x0001e002 bmdma 0x0001ec00 irq 11 Jul 28 17:47:09 localhost kernel: ata4: PATA max UDMA/44 cmd 0x0001e400 ctl 0x0001e802 bmdma 0x0001ec08 irq 11 Jul 28 17:47:09 localhost kernel: ata3.00: ATA-7: ST3160212A, 3.AAJ, max UDMA/100 Jul 28 17:47:09 localhost kernel: ata3.00: 312581808 sectors, multi 16: LBA48 Jul 28 17:47:09 localhost kernel: ata3.00: limited to UDMA/33 due to 40-wire cable Jul 28 17:47:09 localhost kernel: ata3.00: configured for UDMA/33 Jul 28 17:47:09 localhost kernel: scsi 2:0:0:0: Direct-Access ATA ST3160212A 3.AA PQ: 0 ANSI: 5 Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] Write Protect is off Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00 Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] Write Protect is off Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00 Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA Jul 28 17:47:09 localhost kernel: sda: sda1 sda2 < sda5 sda6 sda7 sda8 > Jul 28 17:47:09 localhost kernel: sd 2:0:0:0: [sda] Attached SCSI disk
The actual issue appears to be the cable detect - which is showing as 40 wire cable and thus UDMA 33. The timing tables for the HPT370 @33MHz are the same for UDMA 66 and higher. So while we should be picking UDMA 66 (silly bug and fixed in my tree) we need to work out the cable issue as well
Created attachment 13401 [details] Proposed fixes for HPT37x problems
Let me know if the attached patch fixes your problem
Further fixes done for the cable detect and Sergei spotted the 2nd cable bug Pushing fixes upstream via -mm
> http://bugzilla.kernel.org/show_bug.cgi?id=8848 > ------- Comment #12 from alan@lxorguk.ukuu.org.uk :36 ------- > Let me know if the attached patch fixes your problem Yes, now the max mode is UDMA5. A bit slower than the IDE driver ( with limitation to UDMA4 ). RD+WR test timings ( on Ext3FS ): 1 min 34 sec for IDE/UDMA4 1 min 40 sec for LibATA/UDMA5
Just a side note: libata seems to have slightly higher latency than IDE resulting in slightly lower throughput on non-NCQ drives. This needs to be addressed.