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>] [day] [month] [year] [list]
Message-ID: <46D97E15.2020005@ru.mvista.com>
Date:	Sat, 01 Sep 2007 18:58:29 +0400
From:	Sergei Shtylyov <sshtylyov@...mvista.com>
To:	n <xellos@...ebottle.com>
Cc:	Alan Cox <alan@...rguk.ukuu.org.uk>, linux-ide@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: PROBLEM: kernel 2.6.22.6 pata_pdc202xx_old.c limiting to UDMA/33
 instead of UDMA/100 (UPDATED 2.6.22.6)

Dear n:

    Please do *not* follow-up to a completely inderended thread. Start your 
own, please. :-/

> Update with kernel 2.6.22.6 i am getting this error now
> ata2.00: ATA-6: ST3120026A, 3.06, max UDMA/100

    Gathering courage and reply to libata bug report -- I'm more of the 
drivers/ide/ guy with some SCSI background too... :-)


> here is the new error.
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
> ata2.01: cmd ca/00:00:25:9c:fc/00:00:00:00:00/f6 tag 0 cdb 0x0 data 

    That was an attempt to read 1 sector from LBA 0xfc9c25 of rhe drive #1...

> 131072 out
>         res 40/00:00:3f:00:00/00:00:00:00:00/f0 Emask 0x4 (timeout)
> ata2: port is slow to respond, please be patient (Status 0xfe)
> ata2: device not ready (errno=-16), forcing hardreset
> ata2: soft resetting port
> ata2.01: configured for UDMA/25

     Whee! :-)

> ata2: EH complete

> here is dmseg output
[...]
> parport_pc: Current parallel port base: 0x378
> parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE]
> parport_pc: VIA parallel port: io=0x378, irq=7
> r8169 Gigabit Ethernet driver 2.2LK-NAPI loaded
> ACPI: PCI Interrupt 0000:00:0f.0[A] -> Link [LNKC] -> GSI 11 (level, 
> low) -> IRQ 11
> eth0: RTL8169sb/8110sb at 0xe882c000, 00:14:d1:38:5e:25, IRQ 11
> 8139too Fast Ethernet driver 0.9.28
> ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 5
> PCI: setting IRQ 5 as level-triggered
> ACPI: PCI Interrupt 0000:00:10.0[A] -> Link [LNKD] -> GSI 5 (level, low) 
> -> IRQ 5
> eth1: RealTek RTL8139 at 0x8800, 00:40:05:3a:15:c4, IRQ 5
> eth1:  Identified 8139 chip type 'RTL-8100B/8139D'

    RTL8139 are PoS chips (unless it's 8139D probably)... :-)

> via686a 0000:00:04.4: base address not set - upgrade BIOS or use 
> force_addr=0xaddr

     Hmmm, I'd assume that after that DMA wouldn't be possible but...

> Adding 390560k swap on /dev/sdc1.  Priority:-1 extents:1 across:390560k
> XFS mounting filesystem sdc3
> Ending clean XFS mount for filesystem: sdc3
> XFS mounting filesystem sdc4
> Ending clean XFS mount for filesystem: sdc4
> XFS mounting filesystem sdd1
> Ending clean XFS mount for filesystem: sdd1
> XFS mounting filesystem sde1
> Ending clean XFS mount for filesystem: sde1
> XFS mounting filesystem sdf1
> Ending clean XFS mount for filesystem: sdf1
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata2.01: (BMDMA stat 0x4)

> ata2.01: cmd ca/00:01:3f:00:00/00:00:00:00:00/f0 tag 0 cdb 0x0 data 512 out

    That was an attempt to read the 1st sector from LBA 0x3f of the drive...

>         res 51/84:00:3f:00:00/00:00:00:00:00/f0 Emask 0x10 (ATA bus error)

    ... which failed miserably, with UltraDMA CRC error. Hmmm...

> ata2: soft resetting port
> ata2.01: configured for UDMA/33
> ata2: EH complete
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata2.01: (BMDMA stat 0x4)
> ata2.01: cmd ca/00:01:3f:00:00/00:00:00:00:00/f0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/f0 Emask 0x10 (ATA bus error)

     ... same sh!t happened again at UDNA/33 presumbly...

> ata2: soft resetting port
> ata2.01: configured for UDMA/33
> ata2: EH complete
> sd 1:0:1:0: [sdb] 234441648 512-byte hardware sectors (120034 MB)
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata2.01: (BMDMA stat 0x4)
> ata2.01: cmd ca/00:01:3f:00:00/00:00:00:00:00/f0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/f0 Emask 0x10 (ATA bus error)

    But the DMA write failed again with the same CRC error...

> ata2: soft resetting port
> ata2.01: configured for UDMA/33
> ata2: EH complete
> sd 1:0:1:0: [sdb] Write Protect is off
> sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
> ata2.01: limiting speed to UDMA/25:PIO4
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata2.01: (BMDMA stat 0x4)
> ata2.01: cmd ca/00:01:3f:00:00/00:00:00:00:00/f0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/f0 Emask 0x10 (ATA bus error)

    ... and again.

> ata2: soft resetting port
> ata2.01: configured for UDMA/25
> ata2: EH complete
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata2.01: (BMDMA stat 0x4)
> ata2.01: cmd ca/00:01:3f:00:00/00:00:00:00:00/f0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/f0 Emask 0x10 (ATA bus error)

    ... and again, even with UDMA 25.

> ata2: soft resetting port
> ata2.01: configured for UDMA/25
> ata2: EH complete
> sd 1:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't 
> support DPO or FUA
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata2.01: (BMDMA stat 0x4)
> ata2.01: cmd ca/00:01:3f:00:00/00:00:00:00:00/f0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/f0 Emask 0x10 (ATA bus error)

    Bug is quite persistent... something's up!

> ata2: soft resetting port
> ata2.01: configured for UDMA/25
> sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08
> sd 1:0:1:0: [sdb] Sense Key : 0xb [current] [descriptor]
> Descriptor sense data with sense descriptors (in hex):
>        72 0b 47 00 00 00 00 0c 00 0a 80 00 00 00 00 00
>        00 00 00 3f
> sd 1:0:1:0: [sdb] ASC=0x47 ASCQ=0x0
> end_request: I/O error, dev sdb, sector 63

    Yeah, 63 == 0x3f.

> ata2: EH complete
> sd 1:0:1:0: [sdb] 234441648 512-byte hardware sectors (120034 MB)
> Filesystem "sdb1": Disabling barriers, trial barrier write failed
> sd 1:0:1:0: [sdb] Write Protect is off
> sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
> XFS mounting filesystem sdb1
> sd 1:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't 
> support DPO or FUA
> sd 1:0:1:0: [sdb] 234441648 512-byte hardware sectors (120034 MB)
> sd 1:0:1:0: [sdb] Write Protect is off
> sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
> sd 1:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't 
> support DPO or FUA
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
> ata2.01: cmd ca/00:00:25:9c:fc/00:00:00:00:00/f6 tag 0 cdb 0x0 data 
> 131072 out

    Thrying to DMA write 0 sectors at 0xc9c25.

>         res 40/00:00:3f:00:00/00:00:00:00:00/f0 Emask 0x4 (timeout)

    Hm, 0x40 is not normal a status value... usually, it's 0x50.  But it's 
alright anyway.

> ata2: port is slow to respond, please be patient (Status 0xfe)
> ata2: device not ready (errno=-16), forcing hardreset

    Hm...

> ata2: soft resetting port
> ata2.01: configured for UDMA/25
> ata2: EH complete
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
> ata2.01: cmd ca/00:00:25:9c:fc/00:00:00:00:00/f6 tag 0 cdb 0x0 data 
> 131072 out
>         res 40/00:00:3f:00:00/00:00:00:00:00/f0 Emask 0x4 (timeout)

    Same here.

> ata2: port is slow to respond, please be patient (Status 0xfe)
> ata2: device not ready (errno=-16), forcing hardreset
> ata2: soft resetting port
> ata2.01: configured for UDMA/25
> ata2: EH complete
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
> ata2.01: cmd ca/00:00:25:9c:fc/00:00:00:00:00/f6 tag 0 cdb 0x0 data 
> 131072 out
>         res 40/00:00:3f:00:00/00:00:00:00:00/f0 Emask 0x4 (timeout)

    Again strange status after writinng 0 sectors the same LBA.

[The same us repeating over and over again...]

> sd 1:0:1:0: [sdb] Result: hostbyte=0x00 driverbyte=0x08
> sd 1:0:1:0: [sdb] Sense Key : 0xb [current] [descriptor]
> Descriptor sense data with sense descriptors (in hex):
>        72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00

    Hm, never seen sense format 0x72... :-)
    The 2nd byte is prolly a sense key ABORTED COMMAND?

>        00 00 00 3f

   Aha, 0x3f again, this time in the SCSI sense... I've looked thru the SCSI 
spacs and found nought aboutthis format. :-(

> sd 1:0:1:0: [sdb] ASC=0x0 ASCQ=0x0
> end_request: I/O error, dev sdb, sector 117218341
> ata2: EH complete
> ata2.01: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
> ata2.01: cmd ca/00:00:25:9d:fc/00:00:00:00:00/f6 tag 0 cdb 0x0 data 
> 131072 out
>         res 40/00:00:3f:00:00/00:00:00:00:00/f0 Emask 0x4 (timeout)

    Then everything happily continues in the same vein but t UDMA/25 mode.
[...]

> Here is my previous post
> (not sure if anyone read it im new to mailing lists also ata1 below is 
> ata2 above since i changed it to port 2 so its the same seagate drive.)

> hello, with kernel 2.6.22.5 using the new pata_pdc202xx_old  driver it
> doesn't
> detect the cable right on this seagate drive (i tried switching ports /
> cables ...etc)

     Probably host side detecton is borked. The drived is residing alone on 
that cable?

> it detects the maxtor drive fine no matter what port its on, the seagate
> doesnt detect correctly on either port

   Hrm, then maybe it's indeed device side problem (but IIRC, libata used to 
ignore device side reporting)./

> ata1.00: ATA-6: ST3120026A, 3.06, max UDMA/100
> ata1.00: 234441648 sectors, multi 16: LBA48
> ata1.00: limited to UDMA/33 due to 40-wire cable
> ata1.00: configured for UDMA/33
> ata2.00: ATA-7: Maxtor 6B200R0, max UDMA/133
> ata2.00: 398297088 sectors, multi 16: LBA48
> ata2.00: configured for UDMA/100

> i was searching goolge and i found other uses with the same problem and had
> seagate drives (maybe the cable detect code is differnt in seagate?)

    Hardly so...

> btw only devices sda and sdb are on the pata_pdc202xx_old card.

    Not on the same cable?

> i also get this error about 50 of them
> (dmsg cut top output where it had info about the cable error) anyways if 
> you
> scroll down you will see errors like this
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)

    Write of single sector 63 fails miserably with UltraDMA CRC... although, 
if you're not using UltraDMA at this moment, 0x84 may mean something 
different: bad/uncortrectable sector.

> ata1: soft resetting port
> ata1.00: configured for UDMA/33
> ata1: EH complete ..etc
> 
> .... Ends up here
> 
> ata1: EH complete
> ata1.00: limiting speed to PIO4
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:00:21:9d:fc/00:00:00:00:00/e6 tag 0 cdb 0x0 data 131072
> out
>         res 51/84:00:21:9d:fc/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)

    Hmmm, the driver had just lied to you saying that it downgraded to PIO4 -- 
it still issues WRITE DMA command which failed as usual...

> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)
> ata1: soft resetting port
> ata1.00: configured for UDMA/33
> ata1: EH complete
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:01:3f:00:00/00:00:00:00:00/e0 tag 0 cdb 0x0 data 512 out
>         res 51/84:00:3f:00:00/00:00:00:00:00/e0 Emask 0x10 (ATA bus error)

    "Then it strted all over again..."

> ata1: soft resetting port
> ata1.00: configured for UDMA/25
> sd 0:0:0:0: [sda] Result: hostbyte=0x00 driverbyte=0x08
> sd 0:0:0:0: [sda] Sense Key : 0xb [current] [descriptor]
> Descriptor sense data with sense descriptors (in hex):
>        72 0b 47 00 00 00 00 0c 00 0a 80 00 00 00 00 00
>        00 00 00 3f
> sd 0:0:0:0: [sda] ASC=0x47 ASCQ=0x0

    Hh, SCSI msgs cleared the forat up for me: byte 1 is a sense key, byte 2 
is ASQ (0x47 means SCSI parity error)...

> end_request: I/O error, dev sda, sector 63
> ata1: EH complete
> sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
> Filesystem "sda1": Disabling barriers, trial barrier write failed
> sd 0:0:0:0: [sda] Write Protect is off
> sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
> XFS mounting filesystem sda1
> sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't 
> support
> DPO or FUA
> sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB)
> sd 0:0:0:0: [sda] Write Protect is off
> sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
> sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't 
> support
> DPO or FUA
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:00:21:9c:fc/00:00:00:00:00/e6 tag 0 cdb 0x0 data 131072
> out
>         res 51/84:00:21:9c:fc/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)

    Again failinig DMA write of 0 sectors at LBA 826401...

> ata1: soft resetting port
> ata1.00: configured for UDMA/25
> ata1: EH complete
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:00:21:9c:fc/00:00:00:00:00/e6 tag 0 cdb 0x0 data 131072
> out
>         res 51/84:00:21:9c:fc/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
> ata1: soft resetting port
> ata1.00: configured for UDMA/25
> ata1: EH complete
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:00:21:9c:fc/00:00:00:00:00/e6 tag 0 cdb 0x0 data 131072
> out
>         res 51/84:00:21:9c:fc/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
> ata1: soft resetting port
> ata1.00: configured for UDMA/25
> ata1: EH complete
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:00:21:9c:fc/00:00:00:00:00/e6 tag 0 cdb 0x0 data 131072
> out
>         res 51/84:00:21:9c:fc/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
> ata1: soft resetting port
> ata1.00: configured for UDMA/25
> ata1: EH complete
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)

   It means that IDE DMA has signalled an interrupt

> ata1.00: cmd ca/00:00:21:9c:fc/00:00:00:00:00/e6 tag 0 cdb 0x0 data 131072
> out
>         res 51/84:00:21:9c:fc/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
> ata1: soft resetting port
> ata1.00: configured for UDMA/25
> ata1: EH complete
> ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata1.00: (BMDMA stat 0x4)
> ata1.00: cmd ca/00:00:21:9c:fc/00:00:00:00:00/e6 tag 0 cdb 0x0 data 131072
> out
>         res 51/84:00:21:9c:fc/00:00:00:00:00/e6 Emask 0x10 (ATA bus error)
> ata1: soft resetting port
> ata1.00: configured for UDMA/25
> sd 0:0:0:0: [sda] Result: hostbyte=0x00 driverbyte=0x08
> sd 0:0:0:0: [sda] Sense Key : 0xb [current] [descriptor]
> Descriptor sense data with sense descriptors (in hex):
>        72 0b 47 00 00 00 00 0c 00 0a 80 00 00 00 00 00
>        06 fc 9c 21

    Aha, those last 4 bytes a big-endian address of a requested LBA to write to

> after the kernel finnishes booting i can mount that drive fine (also all 
> the xfs_check xfs_repair ..etc say there is no errors) but i think the drive is
> in pio4 by the time its done.

    From looking at the logs I got a feeling that the speed downgraded didn't 
work all the way to PIO...

> the ide old driver seemed to work ok with this drive also the system
> mainboard ide ports work too.

    Aha, thanks! :-)

> i tried changing the drive jumpers around and that also didnt help

> just to add i tried switching my drives around i moved a wd drive to port 2
> of the pdc controller and it worked fine so if a maxtor and a wd drive is
> hooked up it detects as udma100, this seems to be a error with seagate
> drives only, and i should also note i tried the seagate on the mainboard
> chipset (uses the pata_via.c driver) and it detected the seagate fine and
> set udma 100 on it.

    Yeah, all that is very confusing...

MBR, Sergei
-
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