[PATCH] Re: pata_it821x in 2.6.27 - works but no LBA48 and "hdparm -t" is slower

From: Ondrej Zary
Date: Sat Oct 18 2008 - 12:30:59 EST


On Saturday 18 October 2008 13:42:48 Ondrej Zary wrote:
> Hello,
> big thanks to Alan Cox for the work on pata_it821x driver. I just upgraded
> to 2.6.27 and my RAID1 on IT8212 controller now works without any patching.
>
> Good that I haven't resized my 30GB partition to full drive capacity yet
> because LBA48 does not work:
>
> ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
> pata_it821x 0000:00:12.0: PCI INT A -> Link[LNKC] -> GSI 11 (level, low) ->
> IRQ 11 pata_it821x: controller in smart mode.
> pata_it821x 0000:00:12.0: setting latency timer to 64
> pata_it821x: Firmware 02/09/3030
> 0: MWDMA2 RAID1RAID 0+1 Volume: 0 SAMSUNG HD400LD
> 1: MWDMA2 RAID1RAID 0+1 Volume: 0 SAMSUNG HD400LD
> scsi2 : pata_it821x
> scsi3 : pata_it821x
> ata3: PATA max UDMA/133 cmd 0x6800 ctl 0x6c00 bmdma 0x7800 irq 11
> ata4: PATA max UDMA/133 cmd 0x7000 ctl 0x7400 bmdma 0x7808 irq 11
> ata3.00: ATA-4: Integrated Technology Express Inc, , max MWDMA2
> ata3.00: 268435455 sectors, multi 0: LBA
> ^^ no 48 here
>
> ata3.00: RAID1 volume.
> ata3.00: configured for DMA
> scsi 2:0:0:0: Direct-Access ATA Integrated Techn n/a PQ: 0 ANSI:
> 5 sd 2:0:0:0: [sdb] 268435455 512-byte hardware sectors (137439 MB)
> ^^^^^^ should be
> 400088
>
> sd 2:0:0:0: [sdb] Write Protect is off
> sd 2:0:0:0: [sdb] Mode Sense: 00 3a 00 00
> sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't
> support DPO or FUA sd 2:0:0:0: [sdb] 268435455 512-byte hardware sectors
> (137439 MB)
> sd 2:0:0:0: [sdb] Write Protect is off
> sd 2:0:0:0: [sdb] Mode Sense: 00 3a 00 00
> sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't
> support DPO or FUA sdb: sdb1 sdb2 sdb3 sdb4
> sd 2:0:0:0: [sdb] Attached SCSI disk
> sd 2:0:0:0: Attached scsi generic sg2 type 0
>
>
> Also "hdparm -t" is slower (but "hdparm -t --direct" isn't - so it probably
> isn't pata_it821x issue): 2.6.26 (with my crappy patch):
> /dev/sdb:
> Timing buffered disk reads: 60 MB in 3.01 seconds = 19.91 MB/sec
>
> /dev/sdb:
> Timing O_DIRECT disk reads: 194 MB in 3.00 seconds = 64.62 MB/sec
>
> /dev/sdb:
>
> Model=Integrated Technology Express Inc , FwRev=, SerialNo=âPX
> Config={ }
> RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
> BuffType=unknown, BuffSize=0kB, MaxMultSect=0
> (maybe): CurCHS=0/0/0, CurSects=0, LBA=no
> IORDY=no
> PIO modes: pio0
> AdvancedPM=no
>
> * signifies the current active mode
>
> 2.6.27:
> /dev/sdb:
> Timing buffered disk reads: 48 MB in 3.08 seconds = 15.57 MB/sec
>
> /dev/sdb:
> Timing O_DIRECT disk reads: 196 MB in 3.02 seconds = 64.81 MB/sec
>
> /dev/sdb:
>
> Model=Integrated Technology Express Inc , FwRev=, SerialNo=â'T
> Config={ }
> RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
> BuffType=unknown, BuffSize=0kB, MaxMultSect=0
> (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=781422766
> IORDY=no
> PIO modes: pio0
> DMA modes: mdma0 mdma1 mdma2
> AdvancedPM=no
> Drive conforms to: Unspecified: ATA/ATAPI-0,1,2,3,4
>
> * signifies the current active mode

This patch fixes LBA48 on pata_it821x RAID volumes - and to my surprise, also
increases the "hdparm -t" speed back. Haven't tested access to >128GB area.

ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
pata_it821x 0000:00:12.0: PCI INT A -> Link[LNKC] -> GSI 11 (level, low) -> IRQ 11
pata_it821x: controller in smart mode.
pata_it821x 0000:00:12.0: setting latency timer to 64
pata_it821x: Firmware 02/09/3030
0: MWDMA2 RAID1RAID 0+1 Volume: 0 SAMSUNG HD400LD
1: MWDMA2 RAID1RAID 0+1 Volume: 0 SAMSUNG HD400LD
scsi2 : pata_it821x
scsi3 : pata_it821x
ata3: PATA max UDMA/133 cmd 0x6800 ctl 0x6c00 bmdma 0x7800 irq 11
ata4: PATA max UDMA/133 cmd 0x7000 ctl 0x7400 bmdma 0x7808 irq 11
ata3.00: ATA-4: Integrated Technology Express Inc, , max MWDMA2
ata3.00: 781422766 sectors, multi 0: LBA48
ata3.00: RAID1 volume.
ata3.00: configured for DMA
scsi 2:0:0:0: Direct-Access ATA Integrated Techn n/a PQ: 0 ANSI: 5
sd 2:0:0:0: [sdb] 781422766 512-byte hardware sectors (400088 MB)
sd 2:0:0:0: [sdb] Write Protect is off
sd 2:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sd 2:0:0:0: [sdb] 781422766 512-byte hardware sectors (400088 MB)
sd 2:0:0:0: [sdb] Write Protect is off
sd 2:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
sdb: sdb1 sdb2 sdb3 sdb4
sd 2:0:0:0: [sdb] Attached SCSI disk
sd 2:0:0:0: Attached scsi generic sg2 type 0


/dev/sdb:
Timing buffered disk reads: 60 MB in 3.01 seconds = 19.91 MB/sec



Fix LBA48 on pata_it821x RAID volumes.

Signed-off-by: Ondrej Zary <linux@xxxxxxxxxxxxxxxxxxxx>

--- linux-2.6.27-orig/drivers/ata/pata_it821x.c 2008-10-18 17:09:07.000000000 +0200
+++ linux-2.6.27-pentium/drivers/ata/pata_it821x.c 2008-10-18 17:10:24.000000000 +0200
@@ -557,9 +557,8 @@
if (strstr(model_num, "Integrated Technology Express")) {
/* Set feature bits the firmware neglects */
id[49] |= 0x0300; /* LBA, DMA */
- id[82] |= 0x0400; /* LBA48 */
id[83] &= 0x7FFF;
- id[83] |= 0x4000; /* Word 83 is valid */
+ id[83] |= 0x4400; /* Word 83 is valid and LBA48 */
id[86] |= 0x0400; /* LBA48 on */
id[ATA_ID_MAJOR_VER] |= 0x1F;
}


--
Ondrej Zary
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/