Bug 8848 - (pata HPT370) UDMA100 mode isn't available since LibATA has been incorporated to the kernel
Summary: (pata HPT370) UDMA100 mode isn't available since LibATA has been incorporated...
Status: CLOSED CODE_FIX
Alias: None
Product: IO/Storage
Classification: Unclassified
Component: Serial ATA (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Alan
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-06 22:59 UTC by IvankoB
Modified: 2007-11-11 17:38 UTC (History)
2 users (show)

See Also:
Kernel Version: 2.6.22
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
Proposed fixes for HPT37x problems (3.04 KB, patch)
2007-11-05 07:35 UTC, Alan
Details | Diff

Description IvankoB 2007-08-06 22:59:25 UTC
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.
Comment 1 Sergei Shtylyov 2007-08-10 07:16:54 UTC
(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...
Comment 2 IvankoB 2007-08-11 03:51:45 UTC
> > 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 ?
Comment 3 Sergei Shtylyov 2007-08-11 04:27:07 UTC
(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. :-)
Comment 4 Sergei Shtylyov 2007-08-11 04:30:40 UTC
(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.
Comment 5 IvankoB 2007-08-12 01:46:05 UTC
> 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
Comment 6 Tejun Heo 2007-08-13 19:25:47 UTC
/me summons Alan.
Comment 7 Alan 2007-08-14 02:52:53 UTC
Not enough info to even begin guessing

- Which kernel
- Dmesg on boot
Comment 8 Sergei Shtylyov 2007-08-17 08:51:55 UTC
(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. :-)
Comment 9 IvankoB 2007-08-17 10:51:39 UTC

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
Comment 10 Alan 2007-11-02 09:52:42 UTC
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
Comment 11 Alan 2007-11-05 07:35:34 UTC
Created attachment 13401 [details]
Proposed fixes for HPT37x problems
Comment 12 Alan 2007-11-05 07:36:03 UTC
Let me know if the attached patch fixes your problem
Comment 13 Alan 2007-11-08 06:33:33 UTC
Further fixes done for the cable detect and Sergei spotted the 2nd cable bug

Pushing fixes upstream via -mm
Comment 14 IvankoB 2007-11-10 15:37:30 UTC
> 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
Comment 15 Tejun Heo 2007-11-11 17:38:09 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.