linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Port Multiplier drives not always all found on cold plug
@ 2008-05-16 16:34 Mark Lord
  2008-05-16 16:46 ` Mark Lord
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Lord @ 2008-05-16 16:34 UTC (permalink / raw)
  To: Tejun Heo, Jeff Garzik, Alan Cox, IDE/ATA development list

Tejun,

Since enabling PMP support in sata_mv, there have been some recent
reports of not all drives being found on a PM.

I can reproduce this here myself, too:

(1) silicon image PM with four drives attached.
(2) power-down the PM.
(3) rmmod sata_mv ; modprobe sata_mv (latest upstream).
(4) plug (power off) PM into sata_mv card (7042 chipset).
(5) power on the PM.
(6) watch only 2-3 of the four drives get found.

If the PM was already powered on in advance, then all drives are found.
sata_mv relies entirely on libata-*.c for PMP resets/enumerations,
so I'm not sure that the problem is in sata_mv.

Any ideas?

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-16 16:34 Port Multiplier drives not always all found on cold plug Mark Lord
@ 2008-05-16 16:46 ` Mark Lord
  2008-05-16 16:54   ` Mark Lord
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Lord @ 2008-05-16 16:46 UTC (permalink / raw)
  To: Tejun Heo, Jeff Garzik, Alan Cox, IDE/ATA development list

Mark Lord wrote:
> Tejun,
> 
> Since enabling PMP support in sata_mv, there have been some recent
> reports of not all drives being found on a PM.
> 
> I can reproduce this here myself, too:
> 
> (1) silicon image PM with four drives attached.
> (2) power-down the PM.
> (3) rmmod sata_mv ; modprobe sata_mv (latest upstream).
> (4) plug (power off) PM into sata_mv card (7042 chipset).
> (5) power on the PM.
> (6) watch only 2-3 of the four drives get found.
> 
> If the PM was already powered on in advance, then all drives are found.
> sata_mv relies entirely on libata-*.c for PMP resets/enumerations,
> so I'm not sure that the problem is in sata_mv.
> 
> Any ideas?
..

Mmmm.. one strange thing from the logs.
sata_mv reports "unexpected device interrupt" in a few places,
and then triggers EH to recover from it.
This could be what is causing the PMP enumerations to partially fail.

I wonder why we're getting interrupts when supposedly idle/polling ?
Did something in libata miss reading ata_status to clear an IRQ ?

Here's the original (failing) log:

[ 1222.304368] sata_mv 0000:03:00.0: version 1.20
[ 1222.304796] ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 19 (level, low) -> IRQ 19
[ 1222.304887] sata_mv 0000:03:00.0: Applying 60X1C0 workarounds to unknown rev
[ 1222.304942] sata_mv 0000:03:00.0: Gen-IIE 32 slots 4 ports SCSI mode IRQ via INTx
[ 1222.304954] PCI: Setting latency timer of device 0000:03:00.0 to 64
[ 1222.307587] scsi14 : sata_mv
[ 1222.307587] scsi15 : sata_mv
[ 1222.307587] scsi16 : sata_mv
[ 1222.307718] scsi17 : sata_mv
[ 1222.307718] ata15: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff422000 irq 19
[ 1222.307718] ata16: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff424000 irq 19
[ 1222.307718] ata17: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff426000 irq 19
[ 1222.307718] ata18: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff428000 irq 19
[ 1222.849717] ata15: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1222.893000] ata15.00: ATA-7: ST3750640NS, 3.BAF, max UDMA/133
[ 1222.893000] ata15.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1222.893000] ata15.00: failed to set xfermode (err_mask=0x40)
[ 1222.893000] ata15: failed to recover some devices, retrying in 5 secs
[ 1229.574577] ata15: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1229.621209] ata15.00: failed to set xfermode (err_mask=0x40)
[ 1229.621209] ata15: limiting SATA link speed to 1.5 Gbps
[ 1229.621209] ata15.00: limiting speed to UDMA/133:PIO3
[ 1229.621209] ata15: failed to recover some devices, retrying in 5 secs
[ 1236.859860] ata15: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1236.896494] ata15.00: failed to set xfermode (err_mask=0x40)
[ 1236.896494] ata15.00: disabled

Note the "unexpected device interrupt while idle" error, which triggers EH:

[ 1237.399858] ata15: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen t4
[ 1237.400393] ata15: unexpected device interrupt while idle
[ 1237.400796] ata15: hard resetting link
[ 1237.901885] ata15: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1237.901901] ata15: EH complete
[ 1238.385209] ata16: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1238.385183] ata16.00: ATA-8: Hitachi HDP725050GLA360, GM4OA50E, max UDMA/133
[ 1238.385183] ata16.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1238.385183] ata16.00: failed to set xfermode (err_mask=0x40)
[ 1238.385183] ata16: failed to recover some devices, retrying in 5 secs
[ 1245.329460] ata16: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1245.336654] ata16.00: failed to set xfermode (err_mask=0x40)
[ 1245.349426] ata16: limiting SATA link speed to 1.5 Gbps
[ 1245.349430] ata16.00: limiting speed to UDMA/133:PIO3
[ 1245.349433] ata16: failed to recover some devices, retrying in 5 secs
[ 1252.526624] ata16: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1252.533808] ata16.00: failed to set xfermode (err_mask=0x40)
[ 1252.533864] ata16.00: disabled

Note the "unexpected device interrupt while idle" error, which triggers EH:

[ 1253.176196] ata16: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen t4
[ 1253.176290] ata16: unexpected device interrupt while idle
[ 1253.176349] ata16: hard resetting link
[ 1253.649543] ata16: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1253.649559] ata16: EH complete
[ 1253.982862] ata17: SATA link down (SStatus 0 SControl 300)
[ 1254.302862] ata18: SATA link down (SStatus 0 SControl 300)
[ 1314.600817] ACPI: PCI interrupt for device 0000:03:00.0 disabled
[ 1316.843654] sata_mv 0000:03:00.0: version 1.20
[ 1316.843654] ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 19 (level, low) -> IRQ 19
[ 1316.843654] sata_mv 0000:03:00.0: Applying 60X1C0 workarounds to unknown rev
[ 1316.843654] sata_mv 0000:03:00.0: Gen-IIE 32 slots 4 ports SCSI mode IRQ via INTx
[ 1316.843654] PCI: Setting latency timer of device 0000:03:00.0 to 64
[ 1316.843654] scsi18 : sata_mv
[ 1316.845591] scsi19 : sata_mv
[ 1316.847159] scsi20 : sata_mv
[ 1316.848918] scsi21 : sata_mv
[ 1316.848918] ata19: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff422000 irq 19
[ 1316.848918] ata20: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff424000 irq 19
[ 1316.848918] ata21: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff426000 irq 19
[ 1316.848918] ata22: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff428000 irq 19
[ 1317.319523] ata19: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1317.372879] ata19.00: ATA-7: ST3750640NS, 3.BAF, max UDMA/133
[ 1317.372886] ata19.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1317.449552] ata19.00: configured for UDMA/133
[ 1318.025102] ata20: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1318.041775] ata20.00: ATA-8: Hitachi HDP725050GLA360, GM4OA50E, max UDMA/133
[ 1318.041781] ata20.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1318.060953] ata20.00: configured for UDMA/133
[ 1318.396766] ata21: SATA link down (SStatus 0 SControl 300)
[ 1318.740937] ata22: SATA link down (SStatus 0 SControl 300)
[ 1318.590882] scsi 18:0:0:0: Direct-Access     ATA      ST3750640NS      3.BA PQ: 0 ANSI: 5
[ 1318.590882] sd 18:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1318.590882] sd 18:0:0:0: [sdb] Write Protect is off
[ 1318.590882] sd 18:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1318.590882] sd 18:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1318.590882] sd 18:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1318.590882] sd 18:0:0:0: [sdb] Write Protect is off
[ 1318.590882] sd 18:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1318.590882] sd 18:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 1318.590882]  sdb: sdb1
[ 1318.764651] sd 18:0:0:0: [sdb] Attached SCSI disk
[ 1318.767985] sd 18:0:0:0: Attached scsi generic sg2 type 0
[ 1318.767985] scsi 19:0:0:0: Direct-Access     ATA      Hitachi HDP72505 GM4O PQ: 0 ANSI: 5
[ 1318.767985] sd 19:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1318.767985] sd 19:0:0:0: [sdc] Write Protect is off
[ 1318.767985] sd 19:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1318.767985] sd 19:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1318.771070] sd 19:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1318.771070] sd 19:0:0:0: [sdc] Write Protect is off
[ 1318.771070] sd 19:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1318.771070] sd 19:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1318.771070]  sdc: sdc1
[ 1318.795749] sd 19:0:0:0: [sdc] Attached SCSI disk
[ 1318.795749] sd 19:0:0:0: Attached scsi generic sg3 type 0

Those drives (above) are directly attached to the marvell controller.
Now, below, we power on the silimage PM with four additional drives.

[ 1341.310527] ata22: exception Emask 0x10 SAct 0x0 SErr 0x4010000 action 0xe frozen
[ 1341.312815] ata22: edma_err_cause=00000010 pp_flags=00000000, dev connect
[ 1341.313286] ata22: SError: { PHYRdyChg DevExch }
[ 1341.313561] ata22: hard resetting link
[ 1342.852379] ata22: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1342.853584] ata22.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports, feat 0x1/0x9
[ 1342.855237] ata22.00: hard resetting link
[ 1343.335991] ata22.01: hard resetting link
[ 1344.075666] ata22.02: hard resetting link
[ 1350.898092] ata22.15: link is slow to respond, please be patient (ready=0)
[ 1357.122516] ata22.02: SRST failed (errno=-16)
[ 1357.122961] ata22.02: failed to read SCR 0 (Emask=0x100)
[ 1357.123309] ata22.02: reset failed, giving up
[ 1357.123653] ata22.15: hard resetting link
[ 1357.649204] ata22.15: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 1357.650414] ata22.03: hard resetting link
[ 1364.843567] ata22.15: link is slow to respond, please be patient (ready=0)
[ 1367.988474] ata22.04: hard resetting link
[ 1368.461807] ata22.05: hard resetting link
[ 1368.788713] ata22.03: ATA-7: ST3400832AS, 3.03, max UDMA/133
[ 1368.789078] ata22.03: 781422768 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1368.802056] ata22.03: configured for UDMA/133
[ 1368.808714] ata22.04: ATA-7: ST3400832AS, 3.03, max UDMA/133
[ 1368.809075] ata22.04: 781422768 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1368.822052] ata22.04: configured for UDMA/133
[ 1368.822548] ata22: PMP SError.N set for some ports, repeating recovery
[ 1368.823052] ata22.00: hard resetting link
[ 1373.304201] ata22.00: ATA-7: ST3400832AS, 3.03, max UDMA/133
[ 1373.304574] ata22.00: 781422768 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1373.317543] ata22.00: configured for UDMA/133
[ 1373.474220] ata22.03: configured for UDMA/133
[ 1373.488812] ata22.04: configured for UDMA/133

Note the "unexpected device interrupt while polling" error, which triggers EH:

[ 1373.489906] ata22.15: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x1 t4
[ 1373.490384] ata22.15: unexpected device interrupt while polling
[ 1373.495008] ata22: EH complete
[ 1373.495374] scsi 21:0:0:0: Direct-Access     ATA      ST3400832AS      3.03 PQ: 0 ANSI: 5
[ 1373.496005] sd 21:0:0:0: [sdd] 781422768 512-byte hardware sectors (400088 MB)
[ 1373.496048] sd 21:0:0:0: [sdd] Write Protect is off
[ 1373.496052] sd 21:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 1373.496127] sd 21:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1373.496418] sd 21:0:0:0: [sdd] 781422768 512-byte hardware sectors (400088 MB)
[ 1373.496459] sd 21:0:0:0: [sdd] Write Protect is off
[ 1373.496463] sd 21:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 1373.496539] sd 21:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1373.496568]  sdd: sdd1
[ 1373.516434] sd 21:0:0:0: [sdd] Attached SCSI disk
[ 1373.517411] sd 21:0:0:0: Attached scsi generic sg4 type 0
[ 1373.518343] scsi 21:3:0:0: Direct-Access     ATA      ST3400832AS      3.03 PQ: 0 ANSI: 5
[ 1373.520255] sd 21:3:0:0: [sde] 781422768 512-byte hardware sectors (400088 MB)
[ 1373.520300] sd 21:3:0:0: [sde] Write Protect is off
[ 1373.520306] sd 21:3:0:0: [sde] Mode Sense: 00 3a 00 00
[ 1373.520382] sd 21:3:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1373.520546] sd 21:3:0:0: [sde] 781422768 512-byte hardware sectors (400088 MB)
[ 1373.520590] sd 21:3:0:0: [sde] Write Protect is off
[ 1373.520595] sd 21:3:0:0: [sde] Mode Sense: 00 3a 00 00
[ 1373.520673] sd 21:3:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1373.520703]  sde: sde1
[ 1373.532356] sd 21:3:0:0: [sde] Attached SCSI disk
[ 1373.532356] sd 21:3:0:0: Attached scsi generic sg5 type 0
[ 1373.532393] scsi 21:4:0:0: Direct-Access     ATA      ST3400832AS      3.03 PQ: 0 ANSI: 5
[ 1373.532393] sd 21:4:0:0: [sdf] 781422768 512-byte hardware sectors (400088 MB)
[ 1373.532393] sd 21:4:0:0: [sdf] Write Protect is off
[ 1373.532393] sd 21:4:0:0: [sdf] Mode Sense: 00 3a 00 00
[ 1373.532393] sd 21:4:0:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1373.532393] sd 21:4:0:0: [sdf] 781422768 512-byte hardware sectors (400088 MB)
[ 1373.532393] sd 21:4:0:0: [sdf] Write Protect is off
[ 1373.532393] sd 21:4:0:0: [sdf] Mode Sense: 00 3a 00 00
[ 1373.532393] sd 21:4:0:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1373.532423]  sdf: sdf1
[ 1373.563088] sd 21:4:0:0: [sdf] Attached SCSI disk
[ 1373.564928] sd 21:4:0:0: Attached scsi generic sg6 type 0

Only 3/4 drives were found on the PM.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-16 16:46 ` Mark Lord
@ 2008-05-16 16:54   ` Mark Lord
  2008-05-16 17:27     ` Mark Lord
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Lord @ 2008-05-16 16:54 UTC (permalink / raw)
  To: Tejun Heo, Jeff Garzik, Alan Cox, IDE/ATA development list

Mark Lord wrote:
> Mark Lord wrote:
>> Tejun,
>>
>> Since enabling PMP support in sata_mv, there have been some recent
>> reports of not all drives being found on a PM.
..
> Mmmm.. one strange thing from the logs.
> sata_mv reports "unexpected device interrupt" in a few places,
> and then triggers EH to recover from it.
> This could be what is causing the PMP enumerations to partially fail.
> 
> I wonder why we're getting interrupts when supposedly idle/polling ?
> Did something in libata miss reading ata_status to clear an IRQ ?
..

Here, I've hacked my local copy of sata_mv to NOT trigger EH
when it gets an unexpected device interrupt.  This is how the driver
has been for years, until recently.

With this change, all drives on the PM are found (no surprise).

So I guess the questions are:

1. Where are these unexpected interrupts coming from?

The implication is that a command is being issued without NIEN=1,
*or* the ata_status is not being read (to clear the pending IRQ)
before we clear NIEN for a subsequent command.

2. What to do about them in the driver?

I'm worried that if sata_mv just ignores them (as in my local hack here/below),
then nothing will ever clear them, and a single-core system could get stuck.
Dunno if that actually happens or not, but it looks like a real risk (?).
Then again, the pre-PMP code has been like this for ages..

Here's the successful enumeration log:

[ 3190.597239] sata_mv 0000:03:00.0: version 1.20
[ 3190.597239] ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 19 (level, low) -> IRQ 19
[ 3190.597239] sata_mv 0000:03:00.0: Applying 60X1C0 workarounds to unknown rev
[ 3190.597239] sata_mv 0000:03:00.0: Gen-IIE 32 slots 4 ports SCSI mode IRQ via INTx
[ 3190.597239] PCI: Setting latency timer of device 0000:03:00.0 to 64
[ 3190.597239] scsi30 : sata_mv
[ 3190.600374] scsi31 : sata_mv
[ 3190.600572] scsi32 : sata_mv
[ 3190.600572] scsi33 : sata_mv
[ 3190.600603] ata31: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff422000 irq 19
[ 3190.600609] ata32: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff424000 irq 19
[ 3190.600614] ata33: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff426000 irq 19
[ 3190.600619] ata34: SATA max UDMA/133 mmio m1048576@0xff400000 port 0xff428000 irq 19
[ 3191.092385] ata31: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 3191.145741] ata31.00: ATA-7: ST3750640NS, 3.BAF, max UDMA/133
[ 3191.145747] ata31.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 3191.205747] ata31.00: configured for UDMA/133
[ 3191.682378] ata32: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 3191.692406] ata32.00: ATA-8: Hitachi HDP725050GLA360, GM4OA50E, max UDMA/133
[ 3191.692412] ata32.00: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 3191.712415] ata32.00: configured for UDMA/133
[ 3192.032372] ata33: SATA link down (SStatus 0 SControl 300)
[ 3192.385758] ata34: SATA link down (SStatus 0 SControl 300)
[ 3192.389043] scsi 30:0:0:0: Direct-Access     ATA      ST3750640NS      3.BA PQ: 0 ANSI: 5
[ 3192.389663] sd 30:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 3192.389706] sd 30:0:0:0: [sdb] Write Protect is off
[ 3192.389711] sd 30:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 3192.389786] sd 30:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 3192.389964] sd 30:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 3192.390006] sd 30:0:0:0: [sdb] Write Protect is off
[ 3192.390012] sd 30:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 3192.390087] sd 30:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 3192.390117]  sdb: sdb1
[ 3192.406753] sd 30:0:0:0: [sdb] Attached SCSI disk
[ 3192.406753] sd 30:0:0:0: Attached scsi generic sg2 type 0
[ 3192.406753] scsi 31:0:0:0: Direct-Access     ATA      Hitachi HDP72505 GM4O PQ: 0 ANSI: 5
[ 3192.406753] sd 31:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 3192.406753] sd 31:0:0:0: [sdc] Write Protect is off
[ 3192.406753] sd 31:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 3192.406753] sd 31:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3192.406753] sd 31:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 3192.406753] sd 31:0:0:0: [sdc] Write Protect is off
[ 3192.406753] sd 31:0:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 3192.406753] sd 31:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3192.406753]  sdc: sdc1
[ 3192.447470] sd 31:0:0:0: [sdc] Attached SCSI disk
[ 3192.447675] sd 31:0:0:0: Attached scsi generic sg3 type 0

Now we power on the silimage PM with four drives:

[ 3203.788382] ata34: exception Emask 0x10 SAct 0x0 SErr 0x4010000 action 0xe frozen
[ 3203.788382] ata34: edma_err_cause=00000010 pp_flags=00000000, dev connect
[ 3203.788382] ata34: SError: { PHYRdyChg DevExch }
[ 3203.788382] ata34: hard resetting link
[ 3205.212576] ata34: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 3205.215881] ata34.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports, feat 0x1/0x9
[ 3205.215881] ata34.00: hard resetting link
[ 3211.248459] ata34.15: link is slow to respond, please be patient (ready=0)
[ 3217.065728] ata34.00: SRST failed (errno=-16)

Here's another interrupt that should not have happened.
This time, I've modified sata_mv to just log it and continue,
rather than retriggering EH because of it:

[ 3217.066157] ata34: unexpected device interrupt while polling
[ 3217.066614] ata34.00: hard resetting link
[ 3223.727152] ata34.15: link is slow to respond, please be patient (ready=0)
[ 3229.305615] ata34.00: SRST failed (errno=-16)

And another one:

[ 3229.306080] ata34: unexpected device interrupt while polling
[ 3229.306539] ata34.00: hard resetting link
[ 3230.127157] ata34.01: hard resetting link
[ 3230.447156] ata34.02: hard resetting link
[ 3236.683279] ata34.15: link is slow to respond, please be patient (ready=0)
[ 3242.556778] ata34.02: SRST failed (errno=-16)

And another one:

[ 3242.557198] ata34: unexpected device interrupt while polling
[ 3242.557653] ata34.02: hard resetting link
[ 3245.299215] ata34.03: hard resetting link
[ 3245.772551] ata34.04: hard resetting link
[ 3246.245884] ata34.05: hard resetting link
[ 3246.579045] ata34.02: ATA-7: ST3400832AS, 3.03, max UDMA/133
[ 3246.579415] ata34.02: 781422768 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 3246.592802] ata34.02: configured for UDMA/133
[ 3246.599460] ata34.03: ATA-7: ST3400832AS, 3.03, max UDMA/133
[ 3246.599821] ata34.03: 781422768 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 3246.619054] ata34.03: configured for UDMA/133
[ 3246.632379] ata34.04: ATA-7: ST3400832AS, 3.03, max UDMA/133
[ 3246.632741] ata34.04: 781422768 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 3246.639470] ata34.04: configured for UDMA/133
[ 3246.639968] ata34: PMP SError.N set for some ports, repeating recovery
[ 3246.642325] ata34.00: hard resetting link
[ 3250.196291] ata34.00: ATA-7: ST3400832AS, 3.03, max UDMA/133
[ 3250.196667] ata34.00: 781422768 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 3250.202966] ata34.00: configured for UDMA/133
[ 3250.222964] ata34.02: configured for UDMA/133
[ 3250.236298] ata34.03: configured for UDMA/133
[ 3250.262550] ata34.04: configured for UDMA/133
[ 3250.263054] ata34: EH complete
[ 3252.299461] scsi 33:0:0:0: Direct-Access     ATA      ST3400832AS      3.03 PQ: 0 ANSI: 5
[ 3252.309626] sd 33:0:0:0: [sdd] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.309626] sd 33:0:0:0: [sdd] Write Protect is off
[ 3252.309626] sd 33:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 3252.309626] sd 33:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.309626] sd 33:0:0:0: [sdd] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.309626] sd 33:0:0:0: [sdd] Write Protect is off
[ 3252.309626] sd 33:0:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 3252.309626] sd 33:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.309626]  sdd: sdd1
[ 3252.325039] sd 33:0:0:0: [sdd] Attached SCSI disk
[ 3252.325235] sd 33:0:0:0: Attached scsi generic sg4 type 0
[ 3252.326722] scsi 33:2:0:0: Direct-Access     ATA      ST3400832AS      3.03 PQ: 0 ANSI: 5
[ 3252.327808] sd 33:2:0:0: [sde] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.327851] sd 33:2:0:0: [sde] Write Protect is off
[ 3252.327856] sd 33:2:0:0: [sde] Mode Sense: 00 3a 00 00
[ 3252.327932] sd 33:2:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.328092] sd 33:2:0:0: [sde] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.328135] sd 33:2:0:0: [sde] Write Protect is off
[ 3252.328139] sd 33:2:0:0: [sde] Mode Sense: 00 3a 00 00
[ 3252.328217] sd 33:2:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.328245]  sde: sde1
[ 3252.351141] sd 33:2:0:0: [sde] Attached SCSI disk
[ 3252.351141] sd 33:2:0:0: Attached scsi generic sg5 type 0
[ 3252.351141] scsi 33:3:0:0: Direct-Access     ATA      ST3400832AS      3.03 PQ: 0 ANSI: 5
[ 3252.351141] sd 33:3:0:0: [sdf] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.351171] sd 33:3:0:0: [sdf] Write Protect is off
[ 3252.351175] sd 33:3:0:0: [sdf] Mode Sense: 00 3a 00 00
[ 3252.351249] sd 33:3:0:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.351412] sd 33:3:0:0: [sdf] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.351453] sd 33:3:0:0: [sdf] Write Protect is off
[ 3252.351457] sd 33:3:0:0: [sdf] Mode Sense: 00 3a 00 00
[ 3252.354476] sd 33:3:0:0: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.354476]  sdf: sdf1
[ 3252.361143] sd 33:3:0:0: [sdf] Attached SCSI disk
[ 3252.361143] sd 33:3:0:0: Attached scsi generic sg6 type 0
[ 3252.361246] scsi 33:4:0:0: Direct-Access     ATA      ST3400832AS      3.03 PQ: 0 ANSI: 5
[ 3252.364481] sd 33:4:0:0: [sdg] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.364481] sd 33:4:0:0: [sdg] Write Protect is off
[ 3252.364481] sd 33:4:0:0: [sdg] Mode Sense: 00 3a 00 00
[ 3252.364481] sd 33:4:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.364481] sd 33:4:0:0: [sdg] 781422768 512-byte hardware sectors (400088 MB)
[ 3252.364481] sd 33:4:0:0: [sdg] Write Protect is off
[ 3252.364481] sd 33:4:0:0: [sdg] Mode Sense: 00 3a 00 00
[ 3252.364481] sd 33:4:0:0: [sdg] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3252.364481]  sdg: sdg1
[ 3252.386139] sd 33:4:0:0: [sdg] Attached SCSI disk
[ 3252.386139] sd 33:4:0:0: Attached scsi generic sg7 type 0

Success, all four PMP drives found.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-16 16:54   ` Mark Lord
@ 2008-05-16 17:27     ` Mark Lord
  2008-05-16 18:06       ` Mark Lord
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Lord @ 2008-05-16 17:27 UTC (permalink / raw)
  To: Tejun Heo, Jeff Garzik, Alan Cox, IDE/ATA development list

Mark Lord wrote:
> Mark Lord wrote:
>> Mark Lord wrote:
>>> Tejun,
>>>
>>> Since enabling PMP support in sata_mv, there have been some recent
>>> reports of not all drives being found on a PM.
> ..
>> Mmmm.. one strange thing from the logs.
>> sata_mv reports "unexpected device interrupt" in a few places,
>> and then triggers EH to recover from it.
>> This could be what is causing the PMP enumerations to partially fail.
>>
>> I wonder why we're getting interrupts when supposedly idle/polling ?
>> Did something in libata miss reading ata_status to clear an IRQ ?
> ..
> 
> Here, I've hacked my local copy of sata_mv to NOT trigger EH
> when it gets an unexpected device interrupt.  This is how the driver
> has been for years, until recently.
> 
> With this change, all drives on the PM are found (no surprise).
> 
> So I guess the questions are:
> 
> 1. Where are these unexpected interrupts coming from?
> 
> The implication is that a command is being issued without NIEN=1,
> *or* the ata_status is not being read (to clear the pending IRQ)
> before we clear NIEN for a subsequent command.
..

Mmm.. libata looks totally clean there, verified with some printk's
placed in strategic locations.

Perhaps all commands to the PM itself (pmp=15) result in interrupts
on receipt of the response?  The PM spec certainly implies this,
and doesn't mention NIEN at all.

I suppose that could be the source of them -- tracing in the driver
suggests that they all happen during/after issue of a PMP read command.

> 2. What to do about them in the driver?
..

I think by default, I'll just revert to having the driver ignore them,
the same as is done in the default methods in libata-core.c.

So far they do seem harmless in my testing here.

??

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-16 17:27     ` Mark Lord
@ 2008-05-16 18:06       ` Mark Lord
  2008-05-17 14:21         ` Tejun Heo
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Lord @ 2008-05-16 18:06 UTC (permalink / raw)
  To: Tejun Heo, Jeff Garzik, Alan Cox, IDE/ATA development list

Mark Lord wrote:
>
>> So I guess the questions are:
>>
>> 1. Where are these unexpected interrupts coming from?
..

Well, I'm still not sure of the source of the interrupt,
but I did just now find an ancient bug in sata_mv,
in it's internal handling of the port interrupt mask.

The DONE_IRQ bit gets enabled a tad early in the EH sequence,
enabling us to receive interrupts when we're not expecting them.

Looks like that mv_unexpected_intr() function was useful after all.  :)

Patches forthcoming to clean this up, once I study things a bit more.

Cheers

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-16 18:06       ` Mark Lord
@ 2008-05-17 14:21         ` Tejun Heo
  2008-05-17 17:32           ` Mark Lord
  0 siblings, 1 reply; 12+ messages in thread
From: Tejun Heo @ 2008-05-17 14:21 UTC (permalink / raw)
  To: Mark Lord; +Cc: Jeff Garzik, Alan Cox, IDE/ATA development list

Mark Lord wrote:
> Mark Lord wrote:
>>
>>> So I guess the questions are:
>>>
>>> 1. Where are these unexpected interrupts coming from?
> ..
> 
> Well, I'm still not sure of the source of the interrupt,
> but I did just now find an ancient bug in sata_mv,
> in it's internal handling of the port interrupt mask.
> 
> The DONE_IRQ bit gets enabled a tad early in the EH sequence,
> enabling us to receive interrupts when we're not expecting them.
> 
> Looks like that mv_unexpected_intr() function was useful after all.  :)
> 
> Patches forthcoming to clean this up, once I study things a bit more.

I've been studying things for last two days and discovered a number of 
things.  I'll soon post patch series.  Thanks a lot for digging into PMP 
stuff.  It's great to have someone else's eyes on this stuff.

-- 
tejun

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-17 14:21         ` Tejun Heo
@ 2008-05-17 17:32           ` Mark Lord
  2008-05-17 17:52             ` Tejun Heo
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Lord @ 2008-05-17 17:32 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Jeff Garzik, Alan Cox, IDE/ATA development list

Tejun Heo wrote:
>
> I've been studying things for last two days and discovered a number of 
> things.  I'll soon post patch series.  Thanks a lot for digging into PMP 
> stuff.  It's great to have someone else's eyes on this stuff.
..

Yeah.  It really does help when two or more people totally independently
implement a driver on top of something like that.  For the most part,
this stuff seems to be working rather well, though.  Good job!

Gwendal has been complaining to me about undetected drives on PMP
with sata_mv.  My patchset to fix much of that will be posted here shortly.

But apparently, even with those fixes, he *still* has troubles,
though not as bad as before.  I'm trying to get a nice annotated trace
from him so we can debug that further -- could be due to some of the
stuff you are looking at too, I suppose.

Cheers

Mark


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-17 17:32           ` Mark Lord
@ 2008-05-17 17:52             ` Tejun Heo
  2008-05-17 19:16               ` Mark Lord
  0 siblings, 1 reply; 12+ messages in thread
From: Tejun Heo @ 2008-05-17 17:52 UTC (permalink / raw)
  To: Mark Lord; +Cc: Jeff Garzik, Alan Cox, IDE/ATA development list

Mark Lord wrote:
> Tejun Heo wrote:
>>
>> I've been studying things for last two days and discovered a number of 
>> things.  I'll soon post patch series.  Thanks a lot for digging into 
>> PMP stuff.  It's great to have someone else's eyes on this stuff.
> ..
> 
> Yeah.  It really does help when two or more people totally independently
> implement a driver on top of something like that.  For the most part,
> this stuff seems to be working rather well, though.  Good job!
> 
> Gwendal has been complaining to me about undetected drives on PMP
> with sata_mv.  My patchset to fix much of that will be posted here shortly.
> 
> But apparently, even with those fixes, he *still* has troubles,
> though not as bad as before.  I'm trying to get a nice annotated trace
> from him so we can debug that further -- could be due to some of the
> stuff you are looking at too, I suppose.

Issues I've found are...

* PMP r/w timeout is too short.  It's currently 250ms.  This is from
   SIMG PMPs and was mainly to avoid longish sequential multiple timeouts
   when access PMP regs via polled commands which is not the case
   anymore and mv 4140 needs more time occasionally.

* SDB Notify is not masked during fan-out port resets if PMP hasn't been
   reset in that pass.  This causes PMP register access failure because
   SDB Notify is received while PMP register write is in progress for
   fan-out reset.  I missed this because most of my testing was before
   PMP register access was converted to IRQ driven.

* With the above two fixed, this is peripheral but this is what
   triggered the above two on initial probes.  ata_lpm_schedule() is
   called during probe right after SCSI scan is complete which schedules
   EH immediately, reliably triggering above two on certain hardware
   combinations.

* sil3124/32 and mv4140 combination for some reason can't do NCQ
   reliably.  I don't know why.  I'll blacklist it for the time being
   and contact both companies about this.

* recovered errors shouldn't trigger resets.  (this is peripheral too
   with the first two issues fixed).

I have 8 patches to address the above issues && obscure hotplug 
problems.  I'll send the patches once after more testing.

Thanks.

-- 
tejun

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-17 17:52             ` Tejun Heo
@ 2008-05-17 19:16               ` Mark Lord
  2008-05-18  5:23                 ` Tejun Heo
  0 siblings, 1 reply; 12+ messages in thread
From: Mark Lord @ 2008-05-17 19:16 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Jeff Garzik, Alan Cox, IDE/ATA development list

Tejun Heo wrote:
>
> * sil3124/32 and mv4140 combination for some reason can't do NCQ
>   reliably.  I don't know why.  I'll blacklist it for the time being
>   and contact both companies about this.
..

MMm... I wonder if it's the "don't mix NCQ with non-NCQ" issue there ?

I'll ping my Marvell folks about that one too.

Cheers

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-17 19:16               ` Mark Lord
@ 2008-05-18  5:23                 ` Tejun Heo
  2008-06-02  3:38                   ` JR Wilbert
  0 siblings, 1 reply; 12+ messages in thread
From: Tejun Heo @ 2008-05-18  5:23 UTC (permalink / raw)
  To: Mark Lord; +Cc: Jeff Garzik, Alan Cox, IDE/ATA development list

Mark Lord wrote:
> Tejun Heo wrote:
>>
>> * sil3124/32 and mv4140 combination for some reason can't do NCQ
>>   reliably.  I don't know why.  I'll blacklist it for the time being
>>   and contact both companies about this.
> ..
> 
> MMm... I wonder if it's the "don't mix NCQ with non-NCQ" issue there ?
> 
> I'll ping my Marvell folks about that one too.

Hmm... I don't think so.  It happens when all pending commands are NCQ.

-- 
tejun

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-05-18  5:23                 ` Tejun Heo
@ 2008-06-02  3:38                   ` JR Wilbert
  2008-06-09  1:47                     ` Tejun Heo
  0 siblings, 1 reply; 12+ messages in thread
From: JR Wilbert @ 2008-06-02  3:38 UTC (permalink / raw)
  To: linux-ide

Forgive me if I am posting off topic or in the wrong place. 

I am also experiencing the same problem but with sata_sil24 running  Fedora Core
9  with kernel 2.6.25.3-18.fc9.i686.  And I think you are right about it not
being contained with sata_mv  

On cold boot with all drives in the array the system fails to see any drives. If
 I boot without the drives I can connect them , up to 3 drives. 


If do  rmmod sata_sil24 && modprobe sata_sil24 with 3 out of 4 drives connected. 
And it takes some time to load sata_sil24 

If I am wrong for posting here please let me know.  If I can help in anyway also
let me know. 


Thank you



Here is some logs / info about what I have 

/**
 * output of lshal  of SIlcon Image 3124 
 *
udi = '/org/freedesktop/Hal/devices/pci_1095_3124'
  info.linux.driver = 'sata_sil24'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_244e'  (string)
  info.product = 'SiI 3124 PCI-X Serial ATA Controller'  (string)
  info.subsystem = 'pci'  (string)
  info.udi = '/org/freedesktop/Hal/devices/pci_1095_3124'  (string)
  info.vendor = 'Silicon Image, Inc.'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'pci'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1e.0/0000:01:07.0'  (string)
  pci.device_class = 1  (0x1)  (int)
  pci.device_protocol = 0  (0x0)  (int)
  pci.device_subclass = 128  (0x80)  (int)
  pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1e.0/0000:01:07.0' 
(string)
  pci.product = 'SiI 3124 PCI-X Serial ATA Controller'  (string)
  pci.product_id = 12580  (0x3124)  (int)
  pci.subsys_product = 'SiI 3124 PCI-X Serial ATA Controller'  (string)
  pci.subsys_product_id = 12580  (0x3124)  (int)
  pci.subsys_vendor = 'Silicon Image, Inc.'  (string)
  pci.subsys_vendor_id = 4245  (0x1095)  (int)
  pci.vendor = 'Silicon Image, Inc.'  (string)
  pci.vendor_id = 4245  (0x1095)  (int)
 *
 */


/**
 * output of mod reload 
[root@localhost ~]# rmmod sata_sil24 && time modprobe sata_sil24 

real    1m16.232s
user    0m0.020s
sys     0m0.019s
 *
 */



/**
 * dmesg of ata 
 *
scsi14 : sata_sil24
scsi15 : sata_sil24
scsi16 : sata_sil24
scsi17 : sata_sil24
ata15: SATA max UDMA/100 host m128@0xfdfffc00 port 0xfdff0000 irq 9
ata16: SATA max UDMA/100 host m128@0xfdfffc00 port 0xfdff2000 irq 9
ata17: SATA max UDMA/100 host m128@0xfdfffc00 port 0xfdff4000 irq 9
ata18: SATA max UDMA/100 host m128@0xfdfffc00 port 0xfdff6000 irq 9
ata15: SATA link up 1.5 Gbps (SStatus 113 SControl 10)
ata15.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports, feat 0x1/0x9
ata15.00: hard resetting link
ata15.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata15.01: hard resetting link
ata15.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.02: hard resetting link
ata15.02: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.03: hard resetting link
ata15.03: SATA link down (SStatus 0 SControl 310)
ata15.04: hard resetting link
ata15.04: softreset failed (SRST command error)
ata15.04: reset failed (errno=-5), retrying in 10 secs
ata15.04: hard resetting link
ata15.04: failed to read SCR 2 (Emask=0x40)
ata15.04: failed to read SCR 2 (Emask=0x40)
ata15.04: COMRESET failed (errno=-5)
ata15.04: failed to read SCR 0 (Emask=0x40)
ata15.04: reset failed, giving up
ata15.15: hard resetting link
ata15.15: softreset failed (SRST command error)
ata15.15: reset failed (errno=-5), retrying in 8 secs
ata15.15: hard resetting link
ata15.15: SATA link up 1.5 Gbps (SStatus 113 SControl 10)
ata15.00: hard resetting link
ata15.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata15.01: hard resetting link
ata15.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.02: hard resetting link
ata15.02: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.03: hard resetting link
ata15.03: SATA link down (SStatus 0 SControl 310)
ata15.04: hard resetting link
ata15.04: softreset failed (SRST command error)
ata15.04: reset failed (errno=-5), retrying in 10 secs
ata15.04: hard resetting link
ata15.04: failed to read SCR 2 (Emask=0x40)
ata15.04: failed to read SCR 2 (Emask=0x40)
ata15.04: COMRESET failed (errno=-5)
ata15.04: failed to read SCR 0 (Emask=0x40)
ata15.04: reset failed, giving up
ata15.15: hard resetting link
ata15: controller in dubious state, performing PORT_RST
ata15.15: SATA link up 1.5 Gbps (SStatus 113 SControl 10)
ata15.00: hard resetting link
ata15.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata15.01: hard resetting link
ata15.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.02: hard resetting link
ata15.02: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.03: hard resetting link
ata15.03: SATA link down (SStatus 0 SControl 310)
ata15.04: hard resetting link
ata15.04: softreset failed (SRST command error)
ata15.04: reset failed (errno=-5), retrying in 10 secs
ata15.04: hard resetting link
ata15.04: failed to read SCR 2 (Emask=0x40)
ata15.04: failed to read SCR 2 (Emask=0x40)
ata15.04: COMRESET failed (errno=-5)
ata15.04: failed to read SCR 0 (Emask=0x40)
ata15.04: reset failed, giving up
ata15.04: failed to recover link after 3 tries, disabling
ata15: failed to recover PMP, retrying in 5 secs
ata15.15: hard resetting link
ata15.15: softreset failed (SRST command error)
ata15.15: reset failed (errno=-5), retrying in 8 secs
ata15.15: hard resetting link
ata15.15: SATA link up 1.5 Gbps (SStatus 113 SControl 10)
ata15.00: hard resetting link
ata15.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata15.01: hard resetting link
ata15.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.02: hard resetting link
ata15.02: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata15.03: hard resetting link
ata15.03: SATA link down (SStatus 0 SControl 310)
ata15.05: hard resetting link
ata15.05: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata15.00: ATA-8: WDC WD7500AACS-00ZJB0, 01.01B01, max UDMA/133
ata15.00: 1465149168 sectors, multi 16: LBA48 NCQ (depth 31/32)
ata15.00: configured for UDMA/100
ata15.01: ATA-8: WDC WD7500AACS-00ZJB0, 01.01B01, max UDMA/133
ata15.01: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata15.01: configured for UDMA/100
ata15.02: ATA-8: WDC WD7500AACS-00ZJB0, 01.01B01, max UDMA/133
ata15.02: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
ata15.02: configured for UDMA/100
ata15.00: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0x1 t4
ata15.00: irq_stat 0x00060002, failed to transmit command FIS
ata15.00: configured for UDMA/100
ata15: EH complete
ata16: SATA link down (SStatus 0 SControl 0)
ata17: SATA link down (SStatus 0 SControl 0)
ata18: SATA link down (SStatus 0 SControl 0)
scsi 14:0:0:0: Direct-Access     ATA      WDC WD7500AACS-0 01.0 PQ: 0 ANSI: 5
sd 14:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
sd 14:0:0:0: [sdb] Write Protect is off
sd 14:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 14:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support
DPO or FUA
sd 14:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
sd 14:0:0:0: [sdb] Write Protect is off
sd 14:0:0:0: [sdb] Mode Sense: 00 3a 00 00
sd 14:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support
DPO or FUA
 sdb: sdb1
sd 14:0:0:0: [sdb] Attached SCSI disk
sd 14:0:0:0: Attached scsi generic sg2 type 0
scsi 14:1:0:0: Direct-Access     ATA      WDC WD7500AACS-0 01.0 PQ: 0 ANSI: 5
sd 14:1:0:0: [sdc] 1465149168 512-byte hardware sectors (750156 MB)
sd 14:1:0:0: [sdc] Write Protect is off
sd 14:1:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 14:1:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support
DPO or FUA
sd 14:1:0:0: [sdc] 1465149168 512-byte hardware sectors (750156 MB)
sd 14:1:0:0: [sdc] Write Protect is off
sd 14:1:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 14:1:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support
DPO or FUA
 sdc: sdc1
sd 14:1:0:0: [sdc] Attached SCSI disk
sd 14:1:0:0: Attached scsi generic sg3 type 0
scsi 14:2:0:0: Direct-Access     ATA      WDC WD7500AACS-0 01.0 PQ: 0 ANSI: 5
sd 14:2:0:0: [sdd] 1465149168 512-byte hardware sectors (750156 MB)
sd 14:2:0:0: [sdd] Write Protect is off
sd 14:2:0:0: [sdd] Mode Sense: 00 3a 00 00
sd 14:2:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support
DPO or FUA
sd 14:2:0:0: [sdd] 1465149168 512-byte hardware sectors (750156 MB)
sd 14:2:0:0: [sdd] Write Protect is off
sd 14:2:0:0: [sdd] Mode Sense: 00 3a 00 00
sd 14:2:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support
DPO or FUA
 sdd: sdd1
sd 14:2:0:0: [sdd] Attached SCSI disk
sd 14:2:0:0: Attached scsi generic sg4 type 0

*/











^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Port Multiplier drives not always all found on cold plug
  2008-06-02  3:38                   ` JR Wilbert
@ 2008-06-09  1:47                     ` Tejun Heo
  0 siblings, 0 replies; 12+ messages in thread
From: Tejun Heo @ 2008-06-09  1:47 UTC (permalink / raw)
  To: JR Wilbert; +Cc: linux-ide

JR Wilbert wrote:
> Forgive me if I am posting off topic or in the wrong place. 
> 
> I am also experiencing the same problem but with sata_sil24 running  Fedora Core
> 9  with kernel 2.6.25.3-18.fc9.i686.  And I think you are right about it not
> being contained with sata_mv  
> 
> On cold boot with all drives in the array the system fails to see any drives. If
>  I boot without the drives I can connect them , up to 3 drives. 
> 
> 
> If do  rmmod sata_sil24 && modprobe sata_sil24 with 3 out of 4 drives connected. 
> And it takes some time to load sata_sil24 
> 
> If I am wrong for posting here please let me know.  If I can help in anyway also
> let me know. 

Can you please try the following git tree?

http://git.kernel.org/?p=linux/kernel/git/tj/libata-dev.git;a=shortlog;h=improve-timeout

-- 
tejun

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2008-06-09  1:47 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-16 16:34 Port Multiplier drives not always all found on cold plug Mark Lord
2008-05-16 16:46 ` Mark Lord
2008-05-16 16:54   ` Mark Lord
2008-05-16 17:27     ` Mark Lord
2008-05-16 18:06       ` Mark Lord
2008-05-17 14:21         ` Tejun Heo
2008-05-17 17:32           ` Mark Lord
2008-05-17 17:52             ` Tejun Heo
2008-05-17 19:16               ` Mark Lord
2008-05-18  5:23                 ` Tejun Heo
2008-06-02  3:38                   ` JR Wilbert
2008-06-09  1:47                     ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).