lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200810181830.39023.linux@rainbow-software.org>
Date:	Sat, 18 Oct 2008 18:30:37 +0200
From:	Ondrej Zary <linux@...nbow-software.org>
To:	Alan Cox <alan@...rguk.ukuu.org.uk>
Cc:	linux-kernel@...r.kernel.org
Subject: [PATCH] Re: pata_it821x in 2.6.27 - works but no LBA48 and "hdparm -t" is slower

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@...nbow-software.org>

--- 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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ