* ata_std_qc_defer not good enough for FIS-based switching ?
@ 2008-04-28 21:06 Mark Lord
2008-04-28 22:08 ` Mark Lord
0 siblings, 1 reply; 17+ messages in thread
From: Mark Lord @ 2008-04-28 21:06 UTC (permalink / raw)
To: Tejun Heo, Jeff Garzik, IDE/ATA development list, Alan Cox
Tejun,
I've been trying to track down interrupt timeouts here with sata_mv,
and I think I've found the problem
With a Marvell 7042 chip and a port-multiplier, the driver selects
.qc_defer = ata_std_qc_defer, which is supposed to be correct for FIS-based switching.
But.. There is a mix of NCQ and non-NCQ drives plugged into that PM,
and ata_std_qc_defer() seems happy to mix things up by issuing NCQ commands
to some ports while simultaneously sending non-NCQ commands to other ports.
Needless to say, this confuses the heck out of the hardware,
which cannot tolerate non-NCQ commands in FIS-based switching mode,
or NCQ commands in non FIS-based switching mode.
Are there controllers which *can* handle such a mix (ahci, sil24 ?)
So it looks like a I need a .qc_defer() function which examines all links
from the common host port for activity, and then asks for command deferral
when the new command has a different protocol than those that are outstanding.
Weird that none of the other LLDs need this. Or do they?
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-28 21:06 ata_std_qc_defer not good enough for FIS-based switching ? Mark Lord
@ 2008-04-28 22:08 ` Mark Lord
2008-04-28 23:11 ` Tejun Heo
0 siblings, 1 reply; 17+ messages in thread
From: Mark Lord @ 2008-04-28 22:08 UTC (permalink / raw)
To: Tejun Heo, Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> Tejun,
>
> I've been trying to track down interrupt timeouts here with sata_mv,
> and I think I've found the problem
>
> With a Marvell 7042 chip and a port-multiplier, the driver selects
> .qc_defer = ata_std_qc_defer, which is supposed to be correct for
> FIS-based switching.
>
> But.. There is a mix of NCQ and non-NCQ drives plugged into that PM,
> and ata_std_qc_defer() seems happy to mix things up by issuing NCQ commands
> to some ports while simultaneously sending non-NCQ commands to other ports.
>
> Needless to say, this confuses the heck out of the hardware,
> which cannot tolerate non-NCQ commands in FIS-based switching mode,
> or NCQ commands in non FIS-based switching mode.
>
> Are there controllers which *can* handle such a mix (ahci, sil24 ?)
>
> So it looks like a I need a .qc_defer() function which examines all links
> from the common host port for activity, and then asks for command deferral
> when the new command has a different protocol than those that are
> outstanding.
>
> Weird that none of the other LLDs need this. Or do they?
..
This seems (below) to work for sata_mv. But I still wonder about other LLDs.
static int mv_qc_defer (struct ata_queued_cmd *qc)
{
struct ata_link *link = qc->dev->link;
struct ata_port *ap = link->ap;
struct mv_port_priv *pp;
int port_is_using_ncq;
if (ap->nr_active_links == 0)
return 0;
pp = ap->private_data;
port_is_using_ncq = ((pp->pp_flags & MV_PP_FLAG_NCQ_EN) != 0);
if (qc->tf.protocol == ATA_PROT_NCQ) {
if (port_is_using_ncq)
return ata_std_qc_defer(qc);
} else {
if (!port_is_using_ncq)
return sata_pmp_qc_defer_cmd_switch(qc);
}
return ATA_DEFER_LINK;
}
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-28 22:08 ` Mark Lord
@ 2008-04-28 23:11 ` Tejun Heo
2008-04-28 23:42 ` Mark Lord
2008-04-29 17:09 ` Mark Lord
0 siblings, 2 replies; 17+ messages in thread
From: Tejun Heo @ 2008-04-28 23:11 UTC (permalink / raw)
To: Mark Lord; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Hello, Mark.
Mark Lord wrote:
>> Are there controllers which *can* handle such a mix (ahci, sil24 ?)
Yeap, sil24 can. ahci can currently only do device based switching but
ahci 2.0 can do it too.
>> So it looks like a I need a .qc_defer() function which examines all links
>> from the common host port for activity, and then asks for command
>> deferral
>> when the new command has a different protocol than those that are
>> outstanding.
>>
>> Weird that none of the other LLDs need this. Or do they?
So, none of the others needs this.
> This seems (below) to work for sata_mv. But I still wonder about other
> LLDs.
>
>
> static int mv_qc_defer (struct ata_queued_cmd *qc)
> {
> struct ata_link *link = qc->dev->link;
> struct ata_port *ap = link->ap;
> struct mv_port_priv *pp;
> int port_is_using_ncq;
>
> if (ap->nr_active_links == 0)
> return 0;
> pp = ap->private_data;
> port_is_using_ncq = ((pp->pp_flags & MV_PP_FLAG_NCQ_EN) != 0);
> if (qc->tf.protocol == ATA_PROT_NCQ) {
> if (port_is_using_ncq)
> return ata_std_qc_defer(qc);
> } else {
> if (!port_is_using_ncq)
> return sata_pmp_qc_defer_cmd_switch(qc);
> }
> return ATA_DEFER_LINK;
> }
Looks good to me.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-28 23:11 ` Tejun Heo
@ 2008-04-28 23:42 ` Mark Lord
2008-04-29 1:18 ` Tejun Heo
2008-04-29 17:09 ` Mark Lord
1 sibling, 1 reply; 17+ messages in thread
From: Mark Lord @ 2008-04-28 23:42 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Tejun Heo wrote:
> Hello, Mark.
>
> Mark Lord wrote:
>>> Are there controllers which *can* handle such a mix (ahci, sil24 ?)
>
> Yeap, sil24 can. ahci can currently only do device based switching but
> ahci 2.0 can do it too.
>
>>> So it looks like a I need a .qc_defer() function which examines all
>>> links
>>> from the common host port for activity, and then asks for command
>>> deferral
>>> when the new command has a different protocol than those that are
>>> outstanding.
>>>
>>> Weird that none of the other LLDs need this. Or do they?
>
> So, none of the others needs this.
..
Mmm.. I just plugged the same PM + drives into my sata_sil24 card here,
and that driver went bonkers when I did the same test.
Had to reboot eventually to recover.
Weird.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-28 23:42 ` Mark Lord
@ 2008-04-29 1:18 ` Tejun Heo
2008-04-29 2:26 ` Mark Lord
0 siblings, 1 reply; 17+ messages in thread
From: Tejun Heo @ 2008-04-29 1:18 UTC (permalink / raw)
To: Mark Lord; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> Mmm.. I just plugged the same PM + drives into my sata_sil24 card here,
> and that driver went bonkers when I did the same test.
>
> Had to reboot eventually to recover.
Hmm... That can't be. Above all, although we do manual scheduling
around sil24, the controller does its own scheduling and will happily
issue command in the right order even if the software scheduler screws
up. Do you have the log?
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-29 1:18 ` Tejun Heo
@ 2008-04-29 2:26 ` Mark Lord
2008-05-14 14:11 ` Tejun Heo
0 siblings, 1 reply; 17+ messages in thread
From: Mark Lord @ 2008-04-29 2:26 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Tejun Heo wrote:
> Mark Lord wrote:
>> Mmm.. I just plugged the same PM + drives into my sata_sil24 card here,
>> and that driver went bonkers when I did the same test.
>>
>> Had to reboot eventually to recover.
>
> Hmm... That can't be. Above all, although we do manual scheduling
> around sil24, the controller does its own scheduling and will happily
> issue command in the right order even if the software scheduler screws
> up. Do you have the log?
..
Here's what was in /var/log/messages after I held the power button
for five seconds to force a poweroff and then rebooted. I didn't make much
effort to learn more, as I'm already busy enough testing/debugging sata_mv.
[ 7815.289014] pciehp: Card present on Slot(0013_0005)
[ 7816.290936] program_fw_provided_values: Could not get hotplug parameters
[ 7816.291117] PCI: Enabling device 0000:0d:00.0 (0000 -> 0003)
[ 7816.291127] ACPI: PCI Interrupt 0000:0d:00.0[A] -> GSI 19 (level, low) -> IRQ 18
[ 7816.291221] PCI: Setting latency timer of device 0000:0d:00.0 to 64
[ 7816.292463] scsi11 : sata_sil24
[ 7816.295726] scsi12 : sata_sil24
[ 7816.295799] ata5: SATA max UDMA/100 host m128@0xefa04000 port 0xefa00000 irq 18
[ 7816.295805] ata6: SATA max UDMA/100 host m128@0xefa04000 port 0xefa02000 irq 18
[ 7818.371127] ata5: SATA link down (SStatus 0 SControl 0)
[ 7820.446489] ata6: SATA link down (SStatus 0 SControl 0)
[ 7902.071861] ata6: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xa frozen
[ 7902.071871] ata6: irq_stat 0x00a40080, device exchanged
[ 7902.071888] ata6: hard resetting link
[ 7904.266154] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 7904.266672] ata6.15: Port Multiplier 1.1, 0x11ab:0x4140 r192, 4 ports, feat 0x1/0x1f
[ 7904.267112] ata6.00: hard resetting link
[ 7904.601801] ata6.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 7904.601874] ata6.01: hard resetting link
[ 7904.937053] ata6.01: SATA link up 1.5 Gbps (SStatus 113 SControl 320)
[ 7904.937125] ata6.02: hard resetting link
[ 7905.352127] ata6.02: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 7905.352199] ata6.03: hard resetting link
[ 7905.703339] ata6.03: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 7905.745912] ata6.00: ATA-7: ST3750640NS, 3.BAF, max UDMA/133
[ 7905.745920] ata6.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 7905.804131] ata6.00: configured for UDMA/100
[ 7905.806327] ata6.01: ATA-7: Maxtor 7B320S0, BANC1WK0, max UDMA/133
[ 7905.806334] ata6.01: 625142448 sectors, multi 0: LBA48 NCQ (not used)
[ 7905.809473] ata6.01: configured for UDMA/100
[ 7905.810377] ata6.02: ATA-8: Hitachi HDP725050GLA360, GM4OA50E, max UDMA/133
[ 7905.810383] ata6.02: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 7905.811551] ata6.02: configured for UDMA/100
[ 7905.812511] ata6.03: ATA-7: Hitachi HUA721075KLA330, GK8OA70M, max UDMA/133
[ 7905.812517] ata6.03: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 7905.813721] ata6.03: configured for UDMA/100
[ 7905.813848] ata6: EH complete
[ 7905.814017] scsi 12:0:0:0: Direct-Access ATA ST3750640NS 3.BA PQ: 0 ANSI: 5
[ 7905.814689] sd 12:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 7905.814743] sd 12:0:0:0: [sdb] Write Protect is off
[ 7905.814749] sd 12:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 7905.814778] sd 12:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.815460] sd 12:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 7905.815480] sd 12:0:0:0: [sdb] Write Protect is off
[ 7905.815485] sd 12:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 7905.815515] sd 12:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.815520] sdb: sdb1
[ 7905.843863] sd 12:0:0:0: [sdb] Attached SCSI disk
[ 7905.843948] sd 12:0:0:0: Attached scsi generic sg2 type 0
[ 7905.844114] scsi 12:1:0:0: Direct-Access ATA Maxtor 7B320S0 BANC PQ: 0 ANSI: 5
[ 7905.844236] sd 12:1:0:0: [sdc] 625142448 512-byte hardware sectors (320073 MB)
[ 7905.844254] sd 12:1:0:0: [sdc] Write Protect is off
[ 7905.844258] sd 12:1:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 7905.844285] sd 12:1:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.844356] sd 12:1:0:0: [sdc] 625142448 512-byte hardware sectors (320073 MB)
[ 7905.844372] sd 12:1:0:0: [sdc] Write Protect is off
[ 7905.844377] sd 12:1:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 7905.844403] sd 12:1:0:0: [sdc] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.844408] sdc: sdc1 sdc2 sdc3
[ 7905.864183] sd 12:1:0:0: [sdc] Attached SCSI disk
[ 7905.864261] sd 12:1:0:0: Attached scsi generic sg3 type 0
[ 7905.864418] scsi 12:2:0:0: Direct-Access ATA Hitachi HDP72505 GM4O PQ: 0 ANSI: 5
[ 7905.864542] sd 12:2:0:0: [sdd] 976773168 512-byte hardware sectors (500108 MB)
[ 7905.864560] sd 12:2:0:0: [sdd] Write Protect is off
[ 7905.864566] sd 12:2:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 7905.864593] sd 12:2:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.864662] sd 12:2:0:0: [sdd] 976773168 512-byte hardware sectors (500108 MB)
[ 7905.864678] sd 12:2:0:0: [sdd] Write Protect is off
[ 7905.864683] sd 12:2:0:0: [sdd] Mode Sense: 00 3a 00 00
[ 7905.864709] sd 12:2:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.864714] sdd: sdd1
[ 7905.888043] sd 12:2:0:0: [sdd] Attached SCSI disk
[ 7905.888116] sd 12:2:0:0: Attached scsi generic sg4 type 0
[ 7905.888272] scsi 12:3:0:0: Direct-Access ATA Hitachi HUA72107 GK8O PQ: 0 ANSI: 5
[ 7905.888394] sd 12:3:0:0: [sde] 1465149168 512-byte hardware sectors (750156 MB)
[ 7905.888411] sd 12:3:0:0: [sde] Write Protect is off
[ 7905.888415] sd 12:3:0:0: [sde] Mode Sense: 00 3a 00 00
[ 7905.888441] sd 12:3:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.888506] sd 12:3:0:0: [sde] 1465149168 512-byte hardware sectors (750156 MB)
[ 7905.888522] sd 12:3:0:0: [sde] Write Protect is off
[ 7905.888525] sd 12:3:0:0: [sde] Mode Sense: 00 3a 00 00
[ 7905.888551] sd 12:3:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 7905.888555] sde: sde1
[ 7905.898762] sd 12:3:0:0: [sde] Attached SCSI disk
[ 7905.898833] sd 12:3:0:0: Attached scsi generic sg5 type 0
for d in /dev/sd? ; do bash -c "hdparm -t $d &" ; done
[ 7936.193491] ata6.00: failed to read SCR 1 (Emask=0x40)
[ 7936.193502] ata6.01: failed to read SCR 1 (Emask=0x40)
[ 7936.193506] ata6.02: failed to read SCR 1 (Emask=0x40)
[ 7936.193512] ata6.03: failed to read SCR 1 (Emask=0x40)
[ 7936.193522] ata6.15: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 7936.193528] ata6.15: irq_stat 0x00060002, PMP DMA CS errata
[ 7936.193539] ata6.00: exception Emask 0x100 SAct 0x6 SErr 0x0 action 0x6 frozen
[ 7936.193551] ata6.00: cmd 60/08:08:00:1f:00/00:00:00:00:00/40 tag 1 ncq 4096 in
[ 7936.193553] res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x100 (unknown error)
[ 7936.193559] ata6.00: status: { DRDY }
[ 7936.193568] ata6.00: cmd 60/f8:10:08:1f:00/00:00:00:00:00/40 tag 2 ncq 126976 in
[ 7936.193570] res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x100 (unknown error)
[ 7936.193576] ata6.00: status: { DRDY }
[ 7936.193586] ata6.01: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 7936.193596] ata6.01: cmd c8/00:00:00:18:00/00:00:00:00:00/e0 tag 0 dma 131072 in
[ 7936.193598] res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x100 (unknown error)
[ 7936.193604] ata6.01: status: { DRDY }
[ 7936.193614] ata6.02: exception Emask 0x2 SAct 0x800 SErr 0x0 action 0x6 frozen
[ 7936.193619] ata6.02: irq_stat 0x00060002, data directon mismatch
[ 7936.193631] ata6.02: cmd 60/f8:58:08:16:00/00:00:00:00:00/40 tag 11 ncq 126976 in
[ 7936.193633] res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x2 (HSM violation)
[ 7936.193638] ata6.02: status: { DRDY }
[ 7936.193647] ata6.03: exception Emask 0x100 SAct 0x1008 SErr 0x0 action 0x6 frozen
[ 7936.193657] ata6.03: cmd 60/08:18:00:19:00/00:00:00:00:00/40 tag 3 ncq 4096 in
[ 7936.193659] res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x100 (unknown error)
[ 7936.193664] ata6.03: status: { DRDY }
[ 7936.193675] ata6.03: cmd 60/f8:60:08:19:00/00:00:00:00:00/40 tag 12 ncq 126976 in
[ 7936.193677] res 50/00:00:00:00:00/00:00:00:00:00/00 Emask 0x100 (unknown error)
[ 7936.193683] ata6.03: status: { DRDY }
[ 7936.193693] ata6.15: hard resetting link
[ 7936.193697] ata6: controller in dubious state, performing PORT_RST
[ 7938.417807] ata6.15: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 7938.418267] ata6.00: hard resetting link
[ 7938.769221] ata6.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 7938.769268] ata6.01: hard resetting link
[ 7948.746735] ata6.01: softreset failed (timeout)
[ 7948.746746] ata6.01: hard resetting link
[ 7958.733406] ata6.01: softreset failed (timeout)
[ 7958.733417] ata6.01: hard resetting link
[ 7989.698590] ata6.01: failed to read SCR 0 (Emask=0x40)
[ 7989.698599] ata6.01: failed to read SCR 0 (Emask=0x40)
Taking too long to recover (I needed the machine for other work),
so here I unplugged the PCIe controller card.
[ 7989.698603] pciehp: Card not present on Slot(0013_0005)
[ 7989.698610] ata6.01: failed to read SCR 1 (Emask=0x40)
[ 7989.698614] ata6.01: failed to read SCR 0 (Emask=0x40)
[ 7989.698619] ata6.02: failed to read SCR 2 (Emask=0x40)
[ 7989.698623] sata_sil24: IRQ status == 0xffffffff, PCI fault or device removal?
[ 7989.698630] ata6.02: hard resetting link
[ 7989.807925] ata6.02: hardreset failed (port not ready)
[ 7989.807935] ata6.02: reset failed (errno=-5), retrying in 10 secs
[ 7999.673872] ata6.02: hard resetting link
[ 7999.785623] ata6.02: hardreset failed (port not ready)
[ 7999.785633] ata6.02: reset failed (errno=-5), retrying in 10 secs
[ 8009.651570] ata6.02: hard resetting link
[ 8009.763321] ata6.02: hardreset failed (port not ready)
[ 8009.763331] ata6.02: reset failed (errno=-5), retrying in 35 secs
Mmmm.. libata refusing to give up on a non-present card,
so just for fun I plugged it back in again:
[ 8037.211419] pciehp: Card present on Slot(0013_0005)
[ 8037.211447] sata_sil24: IRQ status == 0xffffffff, PCI fault or device removal?
[ 8041.397700] pciehp: Card not present on Slot(0013_0005)
[ 8041.397723] sata_sil24: IRQ status == 0xffffffff, PCI fault or device removal?
[ 8044.573516] ata6.02: failed to read SCR 0 (Emask=0x40)
[ 8044.573526] ata6.02: limiting SATA link speed to 1.5 Gbps
[ 8044.573530] ata6.02: hard resetting link
[ 8044.685264] ata6.02: hardreset failed (port not ready)
[ 8044.685275] ata6.02: reset failed, giving up
[ 8044.685286] ata6.15: hard resetting link
[ 8044.685290] ata6: controller in dubious state, performing PORT_RST
[ 8046.888352] ata6.15: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF)
[ 8047.139783] ata6.15: qc timeout (cmd 0xe4)
[ 8047.251534] ata6.15: failed to read PMP GSCR[0] (Emask=0x4)
[ 8047.251543] ata6.15: PMP revalidation failed (errno=-5)
[ 8047.251546] ata6.15: retrying hardreset in 5 secs
[ 8047.920143] sata_sil24: IRQ status == 0xffffffff, PCI fault or device removal?
[ 8052.244373] ata6.15: hard resetting link
[ 8052.244382] ata6: controller in dubious state, performing PORT_RST
[ 8054.447456] ata6.15: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF)
[ 8054.698886] ata6.15: qc timeout (cmd 0xe4)
[ 8054.810638] ata6.15: failed to read PMP GSCR[0] (Emask=0x4)
[ 8054.810647] ata6.15: PMP revalidation failed (errno=-5)
[ 8054.810655] ata6.15: limiting SATA link speed to <unknown>
[ 8054.810659] ata6.15: retrying hardreset in 5 secs
[ 8059.803478] ata6.15: hard resetting link
[ 8059.803487] ata6: controller in dubious state, performing PORT_RST
[ 8062.006561] ata6.15: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF)
[ 8062.257992] ata6.15: qc timeout (cmd 0xe4)
[ 8062.369727] ata6.15: failed to read PMP GSCR[0] (Emask=0x4)
[ 8062.369736] ata6.15: PMP revalidation failed (errno=-5)
[ 8062.369743] ata6.15: limiting SATA link speed to <unknown>
[ 8062.369747] ata6.15: retrying hardreset in 5 secs
[ 8067.362548] ata6.15: hard resetting link
[ 8067.362557] ata6: controller in dubious state, performing PORT_RST
[ 8069.573606] ata6.15: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF)
[ 8069.825030] ata6.15: qc timeout (cmd 0xe4)
[ 8069.936939] ata6.15: failed to read PMP GSCR[0] (Emask=0x4)
[ 8069.936949] ata6.15: PMP revalidation failed (errno=-5)
[ 8069.936955] ata6.15: limiting SATA link speed to <unknown>
[ 8069.936959] ata6.15: retrying hardreset in 5 secs
[ 8074.929619] ata6.15: hard resetting link
[ 8074.929627] ata6: controller in dubious state, performing PORT_RST
[ 8077.132724] ata6.15: SATA link down (SStatus FFFFFFFF SControl FFFFFFFF)
[ 8077.384147] ata6.15: qc timeout (cmd 0xe4)
[ 8077.495881] ata6.15: failed to read PMP GSCR[0] (Emask=0x4)
[ 8077.495889] ata6.15: PMP revalidation failed (errno=-5)
[ 8077.495894] ata6.15: failed to recover PMP after 5 tries, giving up
[ 8077.495897] ata6.15: Port Multiplier detaching
[ 8077.607655] ata6.00: disabled
[ 8077.607663] ata6.01: disabled
[ 8077.607667] ata6.02: disabled
[ 8077.607670] ata6.03: disabled
[ 8077.607677] ata6.00: disabled
[ 8077.607706] sd 12:1:0:0: [sdc] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[ 8077.607713] sd 12:1:0:0: [sdc] Sense Key : Aborted Command [current] [descriptor]
[ 8077.607720] Descriptor sense data with sense descriptors (in hex):
[ 8077.607724] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 8077.607737] 00 00 00 00
[ 8077.607742] sd 12:1:0:0: [sdc] Add. Sense: No additional sense information
[ 8077.607750] end_request: I/O error, dev sdc, sector 6144
[ 8077.607755] Buffer I/O error on device sdc, logical block 768
[ 8077.607764] Buffer I/O error on device sdc, logical block 769
[ 8077.607769] Buffer I/O error on device sdc, logical block 770
[ 8077.607773] Buffer I/O error on device sdc, logical block 771
[ 8077.607778] Buffer I/O error on device sdc, logical block 772
[ 8077.607783] Buffer I/O error on device sdc, logical block 773
[ 8077.607787] Buffer I/O error on device sdc, logical block 774
[ 8077.607792] Buffer I/O error on device sdc, logical block 775
[ 8077.607796] Buffer I/O error on device sdc, logical block 776
[ 8077.607801] Buffer I/O error on device sdc, logical block 777
[ 8077.607845] sd 12:1:0:0: rejecting I/O to offline device
[ 8077.607855] sd 12:1:0:0: rejecting I/O to offline device
[ 8077.607906] sd 12:1:0:0: rejecting I/O to offline device
[ 8077.607919] sd 12:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[ 8077.607927] sd 12:0:0:0: [sdb] Sense Key : Aborted Command [current] [descriptor]
[ 8077.607936] Descriptor sense data with sense descriptors (in hex):
[ 8077.607940] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 8077.607960] 00 00 00 00
[ 8077.607968] sd 12:0:0:0: [sdb] Add. Sense: No additional sense information
[ 8077.607977] end_request: I/O error, dev sdb, sector 7936
[ 8077.607986] sd 12:0:0:0: rejecting I/O to offline device
[ 8077.607992] sd 12:0:0:0: rejecting I/O to offline device
[ 8077.608045] sd 12:0:0:0: [sdb] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[ 8077.608053] sd 12:0:0:0: [sdb] Sense Key : Aborted Command [current] [descriptor]
[ 8077.608062] Descriptor sense data with sense descriptors (in hex):
[ 8077.608066] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 8077.608085] 00 00 00 00
[ 8077.608092] sd 12:0:0:0: [sdb] Add. Sense: No additional sense information
[ 8077.608101] end_request: I/O error, dev sdb, sector 7944
[ 8077.608146] sd 12:3:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[ 8077.608153] sd 12:3:0:0: [sde] Sense Key : Aborted Command [current] [descriptor]
[ 8077.608162] Descriptor sense data with sense descriptors (in hex):
[ 8077.608166] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 8077.608187] 00 00 00 00
[ 8077.608194] sd 12:3:0:0: [sde] Add. Sense: No additional sense information
[ 8077.608203] end_request: I/O error, dev sde, sector 6400
[ 8077.608213] sd 12:3:0:0: rejecting I/O to offline device
[ 8077.608224] sd 12:2:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[ 8077.608231] sd 12:2:0:0: [sdd] Sense Key : Aborted Command [current] [descriptor]
[ 8077.608240] Descriptor sense data with sense descriptors (in hex):
[ 8077.608244] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 8077.608263] 00 00 00 00
[ 8077.608270] sd 12:2:0:0: [sdd] Add. Sense: No additional sense information
[ 8077.608279] end_request: I/O error, dev sdd, sector 5640
[ 8077.608324] sd 12:2:0:0: rejecting I/O to offline device
[ 8077.608334] sd 12:3:0:0: [sde] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
[ 8077.608340] sd 12:3:0:0: [sde] Sense Key : Aborted Command [current] [descriptor]
[ 8077.608349] Descriptor sense data with sense descriptors (in hex):
[ 8077.608354] 72 0b 00 00 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 8077.608374] 00 00 00 00
[ 8077.608381] sd 12:3:0:0: [sde] Add. Sense: No additional sense information
[ 8077.608390] end_request: I/O error, dev sde, sector 6408
[ 8077.608434] ata6: EH complete
[ 8077.608448] sd 12:1:0:0: [sdc] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.608455] end_request: I/O error, dev sdc, sector 6400
[ 8077.608462] sd 12:0:0:0: [sdb] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.608469] end_request: I/O error, dev sdb, sector 8192
[ 8077.608479] sd 12:3:0:0: [sde] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.608486] end_request: I/O error, dev sde, sector 6656
[ 8077.608530] sd 12:2:0:0: [sdd] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.608538] end_request: I/O error, dev sdd, sector 5888
[ 8077.610463] sd 12:0:0:0: [sdb] Synchronizing SCSI cache
[ 8077.610504] sd 12:0:0:0: [sdb] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.610511] sd 12:0:0:0: [sdb] Stopping disk
[ 8077.610523] sd 12:0:0:0: [sdb] START_STOP FAILED
[ 8077.610527] sd 12:0:0:0: [sdb] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.612167] sd 12:1:0:0: [sdc] Stopping disk
[ 8077.612187] sd 12:1:0:0: [sdc] START_STOP FAILED
[ 8077.612191] sd 12:1:0:0: [sdc] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.613666] sd 12:2:0:0: [sdd] Synchronizing SCSI cache
[ 8077.613701] sd 12:2:0:0: [sdd] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.613708] sd 12:2:0:0: [sdd] Stopping disk
[ 8077.613721] sd 12:2:0:0: [sdd] START_STOP FAILED
[ 8077.613725] sd 12:2:0:0: [sdd] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.615310] sd 12:3:0:0: [sde] Synchronizing SCSI cache
[ 8077.615344] sd 12:3:0:0: [sde] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.615352] sd 12:3:0:0: [sde] Stopping disk
[ 8077.615365] sd 12:3:0:0: [sde] START_STOP FAILED
[ 8077.615368] sd 12:3:0:0: [sde] Result: hostbyte=DID_BAD_TARGET driverbyte=DRIVER_OK,SUGGEST_OK
[ 8077.615525] ACPI: PCI interrupt for device 0000:0d:00.0 disabled
System now dead. No alt-sysrq, no nothing.
At one point there was a kernel Ooops on the screen, with libata-eh clearly
in the traceback. But this didn't make it into /var/log/messages, so.. oh well.
Like I said, I need this machine for other work (it's my main machine).
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-28 23:11 ` Tejun Heo
2008-04-28 23:42 ` Mark Lord
@ 2008-04-29 17:09 ` Mark Lord
2008-04-29 17:17 ` Mark Lord
` (2 more replies)
1 sibling, 3 replies; 17+ messages in thread
From: Mark Lord @ 2008-04-29 17:09 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Tejun Heo wrote:
> Hello, Mark.
>
> Mark Lord wrote:
>>> Are there controllers which *can* handle such a mix (ahci, sil24 ?)
>
> Yeap, sil24 can. ahci can currently only do device based switching but
> ahci 2.0 can do it too.
>
>>> So it looks like a I need a .qc_defer() function which examines all
>>> links
>>> from the common host port for activity, and then asks for command
>>> deferral
>>> when the new command has a different protocol than those that are
>>> outstanding.
>>>
>>> Weird that none of the other LLDs need this. Or do they?
>
> So, none of the others needs this.
>
>> This seems (below) to work for sata_mv. But I still wonder about
>> other LLDs.
..
Mmm.. Found another problem with sata_mv vs. the standard .qc_defer ops:
they don't prevent PIO commands from getting into the mix.
So now I have this in sata_mv, for all chip versions:
static int mv_qc_defer (struct ata_queued_cmd *qc)
{
struct ata_link *link = qc->dev->link;
struct ata_port *ap = link->ap;
struct mv_port_priv *pp;
/*
* If the port is completely idle, then allow the new qc.
*/
if (ap->nr_active_links == 0)
return 0;
/*
* If the port is not in host-queue mode (EDMA), then defer the new qc.
*/
pp = ap->private_data;
if (!(pp->pp_flags & MV_PP_FLAG_EDMA_EN))
return ATA_DEFER_PORT;
if (pp->pp_flags & MV_PP_FLAG_NCQ_EN) {
/*
* The host queue (EDMA) is in NCQ mode.
* If the new qc is also an NCQ command,
* then allow the new qc.
*/
if (qc->tf.protocol == ATA_PROT_NCQ)
return 0;
} else {
/*
* The host queue (EDMA) is in non-NCQ, DMA mode.
* If the new qc is also a non-NCQ, DMA command,
* then allow the new qc.
*/
if (qc->tf.protocol == ATA_PROT_DMA)
return 0;
}
return ATA_DEFER_PORT;
}
For the first time ever, I can now *heavily* mix PIO commands
with NCQ/non-NCQ DMA commands, to drives on an attached PM
(well, two attached PMs even), and the thing doesn't croak.
Woo-hoo!
Time to batch up some patches for Jeff. But sadly, just in time
to have missed his weekly visit to linux-ide. :)
I wonder if something like that is what bit sata_sil24 the other day
when I had it plugged in, mixing DMA, NCQ, and PIO commands to drives
on an attached PM?
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-29 17:09 ` Mark Lord
@ 2008-04-29 17:17 ` Mark Lord
2008-04-30 9:38 ` Tejun Heo
2008-04-30 14:02 ` Mark Lord
2 siblings, 0 replies; 17+ messages in thread
From: Mark Lord @ 2008-04-29 17:17 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
..
> For the first time ever, I can now *heavily* mix PIO commands
> with NCQ/non-NCQ DMA commands, to drives on an attached PM
> (well, two attached PMs even), and the thing doesn't croak.
> Woo-hoo!
..
Here is the simple torture test I'm using for this.
It might be fun for others to try something similar on the other LLDs
which have PMP support:
1. QuadCore CPU, with 4GB of RAM (lots of simultaneous threads).
2. In one window, do this (lots of overlapping PIO commands):
while ( true ) ; do for d in /dev/sd? ; do bash -c "hdparm -C $d &" ; done ; sleep 0.1 ; done
3. In a second window, do this (lots of overlapping DMA/NCQ reads):
while (true) ; do for d in /dev/sd? ; do bash -c "hdparm -t $d &" ; done ; sleep 6 ; done
Or something like that.
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-29 17:09 ` Mark Lord
2008-04-29 17:17 ` Mark Lord
@ 2008-04-30 9:38 ` Tejun Heo
2008-04-30 14:02 ` Mark Lord
2 siblings, 0 replies; 17+ messages in thread
From: Tejun Heo @ 2008-04-30 9:38 UTC (permalink / raw)
To: Mark Lord; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> For the first time ever, I can now *heavily* mix PIO commands
> with NCQ/non-NCQ DMA commands, to drives on an attached PM
> (well, two attached PMs even), and the thing doesn't croak.
> Woo-hoo!
Cool.
> Time to batch up some patches for Jeff. But sadly, just in time
> to have missed his weekly visit to linux-ide. :)
>
> I wonder if something like that is what bit sata_sil24 the other day
> when I had it plugged in, mixing DMA, NCQ, and PIO commands to drives
> on an attached PM?
sil24 and ahci are pretty heavily tested regarding command scheduling.
I'll dig into the log soon. Please give me some time.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-29 17:09 ` Mark Lord
2008-04-29 17:17 ` Mark Lord
2008-04-30 9:38 ` Tejun Heo
@ 2008-04-30 14:02 ` Mark Lord
2 siblings, 0 replies; 17+ messages in thread
From: Mark Lord @ 2008-04-30 14:02 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
..
> For the first time ever, I can now *heavily* mix PIO commands
> with NCQ/non-NCQ DMA commands, to drives on an attached PM
> (well, two attached PMs even), and the thing doesn't croak.
> Woo-hoo!
>
>
> Time to batch up some patches for Jeff. But sadly, just in time
> to have missed his weekly visit to linux-ide. :)
..
Since I've just missed Jeff's weekly capture window (Mondays, it seems),
I'm holding off on the new patches while I work on getting the EH code
to fully/correctly handle (single/multiple) PMP error(s). Currently,
it just resets the port without doing full NCQ diagnosis for PMP ports,
and that has to change.
It's a bit complex for this chip (sata_mv) architecture, but doable.
If all goes well, there'll be a full patch series out for next Monday.
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-04-29 2:26 ` Mark Lord
@ 2008-05-14 14:11 ` Tejun Heo
2008-05-14 14:45 ` Mark Lord
0 siblings, 1 reply; 17+ messages in thread
From: Tejun Heo @ 2008-05-14 14:11 UTC (permalink / raw)
To: Mark Lord; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> Tejun Heo wrote:
>> Mark Lord wrote:
>>> Mmm.. I just plugged the same PM + drives into my sata_sil24 card here,
>>> and that driver went bonkers when I did the same test.
>>>
>>> Had to reboot eventually to recover.
>>
>> Hmm... That can't be. Above all, although we do manual scheduling
>> around sil24, the controller does its own scheduling and will happily
>> issue command in the right order even if the software scheduler screws
>> up. Do you have the log?
> ..
>
> Here's what was in /var/log/messages after I held the power button
> for five seconds to force a poweroff and then rebooted. I didn't make much
> effort to learn more, as I'm already busy enough testing/debugging sata_mv.
Hmmm... Have been testing NCQ + non-NCQ heavy load test w/ deadline
scheduler for 30+ mins now and there's no problem at all. I'm pretty
sure sata_sil24 can handle mixed (across different drives) NCQ + non-NCQ
workload okay.
One catch w/ sata_sil24 is that it has something called PMP DMA CS
errata which means that all context is lost if any error (including a
device one) occurs during commands are pending to more than two devices
behind a port, the controller's state gets completely corrupt, so when
something goes wrong while lots of commands are pending via PMP, it's
often impossible what exactly went wrong.
sil4726/3726 also has a quirk. It has configuration device as the last
device and issuing random IOs it might cause unpredictable results. So,
can you please re-try the test excluding the pseudo config device?
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-05-14 14:11 ` Tejun Heo
@ 2008-05-14 14:45 ` Mark Lord
2008-05-14 14:53 ` Mark Lord
0 siblings, 1 reply; 17+ messages in thread
From: Mark Lord @ 2008-05-14 14:45 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Tejun Heo wrote:
> Mark Lord wrote:
>> Tejun Heo wrote:
>>> Mark Lord wrote:
>>>> Mmm.. I just plugged the same PM + drives into my sata_sil24 card here,
>>>> and that driver went bonkers when I did the same test.
>>>>
>>>> Had to reboot eventually to recover.
>>>
>>> Hmm... That can't be. Above all, although we do manual scheduling
>>> around sil24, the controller does its own scheduling and will happily
>>> issue command in the right order even if the software scheduler
>>> screws up. Do you have the log?
>> ..
>>
>> Here's what was in /var/log/messages after I held the power button
>> for five seconds to force a poweroff and then rebooted. I didn't make
>> much
>> effort to learn more, as I'm already busy enough testing/debugging
>> sata_mv.
>
> Hmmm... Have been testing NCQ + non-NCQ heavy load test w/ deadline
> scheduler for 30+ mins now and there's no problem at all. I'm pretty
> sure sata_sil24 can handle mixed (across different drives) NCQ + non-NCQ
> workload okay.
>
> One catch w/ sata_sil24 is that it has something called PMP DMA CS
> errata which means that all context is lost if any error (including a
> device one) occurs during commands are pending to more than two devices
> behind a port, the controller's state gets completely corrupt, so when
> something goes wrong while lots of commands are pending via PMP, it's
> often impossible what exactly went wrong.
>
> sil4726/3726 also has a quirk. It has configuration device as the last
> device and issuing random IOs it might cause unpredictable results. So,
> can you please re-try the test excluding the pseudo config device?
..
Yeah, I'll retest it Right Now. :)
At the moment, I have the Sil PM plugged in, and it all behaves nicely.
The previous failure was with the Marvell PM, so I'll hook that up next
and retest with it.
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-05-14 14:45 ` Mark Lord
@ 2008-05-14 14:53 ` Mark Lord
2008-05-14 15:50 ` Mark Lord
2008-05-15 6:51 ` Tejun Heo
0 siblings, 2 replies; 17+ messages in thread
From: Mark Lord @ 2008-05-14 14:53 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
>..
> At the moment, I have the Sil PM plugged in, and it all behaves nicely.
> The previous failure was with the Marvell PM, so I'll hook that up next
> and retest with it.
..
It went bonkers again. This is with 2.6.25.
I'll build 2.6.26-git and try again with that shortly.
One thing about sata_sil24 --> it *really* doesn't like to handle
hotplug events while in the midst of EH.
I unplugged the host cable from the PM, and the EH just kept on
going and going.
I then unplugged the sata_sil24 PCIe host adapter card,
and it still took quite some time to give up on the Energizer Bunny routine. :)
Anyway, this is my main machine, so I'll be out for a spell now while
rebuilding/rebooting.
Cheers
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-05-14 14:53 ` Mark Lord
@ 2008-05-14 15:50 ` Mark Lord
2008-05-14 15:59 ` Mark Lord
2008-05-15 6:51 ` Tejun Heo
1 sibling, 1 reply; 17+ messages in thread
From: Mark Lord @ 2008-05-14 15:50 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> Mark Lord wrote:
>> ..
>> At the moment, I have the Sil PM plugged in, and it all behaves nicely.
>> The previous failure was with the Marvell PM, so I'll hook that up next
>> and retest with it.
> ..
>
> It went bonkers again. This is with 2.6.25.
> I'll build 2.6.26-git and try again with that shortly.
..
Okay, I have today's 2.6.26-rc2-git installed now.
My PCIe notebook has an ExpressCard with this on it:
0d:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial ATA Raid II Controller (rev 01)
That's the controller I use with sata_sil24 here.
I have a Marvell 4140 port-multiplier (standalone card),
and have a Seagate 750GB drive (pmp=0) and a Hitachi 500GB drive (pmp=2).
When I simply do "hdparm -t" simultaneously on both drives,
something gets very confused somewhere. Neither drive has any media errors,
and this exact same test works fine with sata_mv in my other system.
The same test also works fine with both controllers
when using a Silicon Image PM instead of the Marvell.
When I move the second drive to pmp=1 (instead of pmp=2),
then sata_sil24 no longer has problems. Very peculiar.
Here's the log from sata_sil24, ports 0,2, as it fails:
plug in the card, with Marvell PM and drives on pmp 0,2:
[ 1439.967977] pciehp: Card present on Slot(5)
[ 1440.981266] program_fw_provided_values: Could not get hotplug parameters
[ 1440.982529] sata_sil24 0000:0d:00.0: enabling device (0000 -> 0003)
[ 1440.982529] ACPI: PCI Interrupt 0000:0d:00.0[A] -> GSI 19 (level, low) -> IRQ 19
[ 1440.982529] PCI: Setting latency timer of device 0000:0d:00.0 to 64
[ 1440.982529] scsi8 : sata_sil24
[ 1440.982529] scsi9 : sata_sil24
[ 1440.982529] ata9: SATA max UDMA/100 host m128@0xefa04000 port 0xefa00000 irq 19
[ 1440.982529] ata10: SATA max UDMA/100 host m128@0xefa04000 port 0xefa02000 irq 19
[ 1443.055025] ata9: SATA link down (SStatus 0 SControl 0)
[ 1445.242668] ata10: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 1445.245453] ata10.15: Port Multiplier 1.1, 0x11ab:0x4140 r192, 4 ports, feat 0x1/0x1f
[ 1445.246012] ata10.00: hard resetting link
[ 1445.591512] ata10.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1445.591524] ata10.01: hard resetting link
[ 1445.928570] ata10.01: SATA link down (SStatus 0 SControl 320)
[ 1445.928570] ata10.02: hard resetting link
[ 1446.353566] ata10.02: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1446.353991] ata10.03: hard resetting link
[ 1446.674686] ata10.03: SATA link down (SStatus 0 SControl 320)
[ 1446.723144] ata10.00: ATA-7: ST3750640NS, 3.BAF, max UDMA/133
[ 1446.723144] ata10.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1446.781972] ata10.00: configured for UDMA/100
[ 1446.785055] ata10.02: ATA-8: Hitachi HDP725050GLA360, GM4OA50E, max UDMA/133
[ 1446.785055] ata10.02: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 1446.786866] ata10.02: configured for UDMA/100
[ 1446.786894] ata10: EH complete
[ 1446.802592] scsi 9:0:0:0: Direct-Access ATA ST3750640NS 3.BA PQ: 0 ANSI: 5
[ 1446.802783] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1446.802816] sd 9:0:0:0: [sdb] Write Protect is off
[ 1446.802823] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1446.802877] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1446.802980] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1446.803012] sd 9:0:0:0: [sdb] Write Protect is off
[ 1446.803017] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1446.803070] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1446.803076] sdb: sdb1
[ 1446.825903] sd 9:0:0:0: [sdb] Attached SCSI disk
[ 1446.825903] sd 9:0:0:0: Attached scsi generic sg2 type 0
[ 1446.825903] scsi 9:2:0:0: Direct-Access ATA Hitachi HDP72505 GM4O PQ: 0 ANSI: 5
[ 1446.828119] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1446.828151] sd 9:2:0:0: [sdc] Write Protect is off
[ 1446.828156] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1446.828208] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1446.828299] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1446.828329] sd 9:2:0:0: [sdc] Write Protect is off
[ 1446.828334] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1446.828386] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1446.828392] sdc: sdc1
[ 1446.844892] sd 9:2:0:0: [sdc] Attached SCSI disk
[ 1446.844928] sd 9:2:0:0: Attached scsi generic sg3 type 0
[ 1446.854711] ata10.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7
[ 1446.854717] ata10: SError: { RecovComm }
[ 1446.854917] ata10.00: hard resetting link
[ 1447.174918] ata10.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1447.285294] ata10.00: configured for UDMA/100
[ 1447.285378] ata10.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t4
[ 1447.285478] ata10: SError: { RecovComm }
[ 1447.285775] ata10.00: hard resetting link
[ 1447.610328] ata10.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1447.701675] ata10.00: configured for UDMA/100
[ 1447.701760] ata10.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t3
[ 1447.701760] ata10: SError: { RecovComm }
[ 1447.701899] ata10.00: hard resetting link
[ 1448.024145] ata10.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1448.118645] ata10.00: configured for UDMA/100
[ 1448.118702] ata10.00: limiting SATA link speed to 1.5 Gbps
[ 1448.118744] ata10.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t2
[ 1448.118744] ata10: SError: { RecovComm }
[ 1448.119050] ata10.00: hard resetting link
[ 1448.370286] ata10.15: qc timeout (cmd 0xe8)
[ 1448.370658] ata10.00: failed to write SCR 2 (Emask=0x4)
[ 1448.370961] ata10.00: COMRESET failed (errno=-5)
[ 1448.371138] ata10.00: failed to read SCR 0 (Emask=0x40)
[ 1448.371138] ata10.00: failed to read SCR 0 (Emask=0x40)
[ 1448.371138] ata10.00: reset failed, giving up
[ 1448.371138] ata10.15: hard resetting link
[ 1450.557452] ata10.15: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 1450.558290] ata10.00: hard resetting link
[ 1450.879173] ata10.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1450.879504] ata10.01: hard resetting link
[ 1451.202505] ata10.01: SATA link down (SStatus 0 SControl 320)
[ 1451.202860] ata10.02: hard resetting link
[ 1451.525975] ata10.02: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1451.526309] ata10.03: hard resetting link
[ 1451.846862] ata10.03: SATA link down (SStatus 0 SControl 320)
[ 1451.935344] ata10.00: configured for UDMA/100
[ 1451.938390] ata10.02: configured for UDMA/100
[ 1451.938476] ata10.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t1
[ 1451.938476] ata10: SError: { RecovComm }
[ 1451.938490] ata10.00: hard resetting link
[ 1452.261789] ata10.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1452.352836] ata10.00: configured for UDMA/100
[ 1452.352864] ata10: EH pending after 5 tries, giving up
[ 1452.352864] ata10: EH complete
[ 1452.356551] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1452.356551] sd 9:0:0:0: [sdb] Write Protect is off
[ 1452.356551] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1452.356551] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1452.356551] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1452.356551] sd 9:2:0:0: [sdc] Write Protect is off
[ 1452.356551] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1452.356551] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1452.356551] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1452.356551] sd 9:0:0:0: [sdb] Write Protect is off
[ 1452.356551] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1452.356551] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1452.356551] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1452.356551] sd 9:2:0:0: [sdc] Write Protect is off
[ 1452.356551] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1452.356551] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
simultaneous hdparm -t tasks:
[ 1470.883924] ata10.00: failed to read SCR 1 (Emask=0x40)
[ 1470.884335] ata10.01: failed to read SCR 1 (Emask=0x40)
[ 1470.884648] ata10.02: failed to read SCR 1 (Emask=0x40)
[ 1470.884956] ata10.03: failed to read SCR 1 (Emask=0x40)
[ 1470.885266] ata10.00: exception Emask 0x100 SAct 0x8 SErr 0x0 action 0x6 frozen
[ 1470.885640] ata10.00: cmd 60/f8:18:08:04:00/01:00:00:00:00/40 tag 3 ncq 258048 in
[ 1470.885643] res d6/34:00:00:00:00/00:00:40:31:d6/00 Emask 0x2 (HSM violation)
[ 1470.886317] ata10.00: status: { Busy }
[ 1470.886571] ata10.00: error: { IDNF ABRT }
[ 1470.886841] ata10.01: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 1470.890513] ata10.02: exception Emask 0x2 SAct 0x16 SErr 0x0 action 0x6 frozen
[ 1470.890513] ata10.02: irq_stat 0x00020002, data directon mismatch
[ 1470.890513] ata10.02: cmd 60/08:08:00:0d:00/00:00:00:00:00/40 tag 1 ncq 4096 in
[ 1470.890513] res d6/34:00:00:00:00/00:00:00:10:d6/00 Emask 0x2 (HSM violation)
[ 1470.890513] ata10.02: status: { Busy }
[ 1470.890513] ata10.02: error: { IDNF ABRT }
[ 1470.890513] ata10.02: cmd 60/f8:10:08:0c:00/00:00:00:00:00/40 tag 2 ncq 126976 in
[ 1470.890513] res d6/34:00:00:00:00/00:00:00:20:d6/00 Emask 0x2 (HSM violation)
[ 1470.890513] ata10.02: status: { Busy }
[ 1470.890513] ata10.02: error: { IDNF ABRT }
[ 1470.890513] ata10.02: cmd 60/f8:20:08:0d:00/00:00:00:00:00/40 tag 4 ncq 126976 in
[ 1470.890513] res d6/34:00:00:00:00/00:00:00:40:d6/00 Emask 0x2 (HSM violation)
[ 1470.891147] ata10.02: status: { Busy }
[ 1470.891372] ata10.02: error: { IDNF ABRT }
[ 1470.891613] ata10.03: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 1470.893824] ata10.15: hard resetting link
[ 1470.894057] ata10: controller in dubious state, performing PORT_RST
[ 1473.107981] ata10.15: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 1473.108876] ata10.00: hard resetting link
[ 1473.442708] ata10.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1473.443121] ata10.01: hard resetting link
[ 1473.767992] ata10.01: SATA link down (SStatus 0 SControl 320)
[ 1473.768414] ata10.02: hard resetting link
[ 1474.096001] ata10.02: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1474.096001] ata10.03: hard resetting link
[ 1474.427047] ata10.03: SATA link down (SStatus 0 SControl 320)
[ 1474.532829] ata10.00: configured for UDMA/100
[ 1474.536133] ata10.02: configured for UDMA/100
[ 1474.536147] ata10: EH complete
[ 1474.544220] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1474.544220] sd 9:0:0:0: [sdb] Write Protect is off
[ 1474.544220] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1474.544220] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1474.544220] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1474.544220] sd 9:2:0:0: [sdc] Write Protect is off
[ 1474.544220] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1474.544220] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1474.544220] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1474.544220] sd 9:0:0:0: [sdb] Write Protect is off
[ 1474.544220] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1474.547554] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1474.547554] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1474.547554] sd 9:2:0:0: [sdc] Write Protect is off
[ 1474.547554] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1474.547554] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
simultaneous hdparm -t tasks:
[ 1478.180962] ata10.00: failed to read SCR 1 (Emask=0x40)
[ 1478.182188] ata10.01: failed to read SCR 1 (Emask=0x40)
[ 1478.182544] ata10.02: failed to read SCR 1 (Emask=0x40)
[ 1478.182859] ata10.03: failed to read SCR 1 (Emask=0x40)
[ 1478.183170] ata10.00: exception Emask 0x100 SAct 0x18 SErr 0x0 action 0x6 frozen
[ 1478.183546] ata10.00: cmd 60/08:18:00:b0:00/00:00:00:00:00/40 tag 3 ncq 4096 in
[ 1478.183549] res d6/34:00:00:00:00/00:00:00:30:d6/00 Emask 0x2 (HSM violation)
[ 1478.184041] ata10.00: status: { Busy }
[ 1478.184041] ata10.00: error: { IDNF ABRT }
[ 1478.184041] ata10.00: cmd 60/f8:20:08:b0:00/00:00:00:00:00/40 tag 4 ncq 126976 in
[ 1478.184041] res d6/34:00:00:00:00/00:00:00:40:d6/00 Emask 0x2 (HSM violation)
[ 1478.187332] ata10.00: status: { Busy }
[ 1478.187332] ata10.00: error: { IDNF ABRT }
[ 1478.187332] ata10.01: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 1478.187453] ata10.02: exception Emask 0x2 SAct 0x4 SErr 0x0 action 0x6 frozen
[ 1478.190639] ata10.02: irq_stat 0x00060002, data directon mismatch
[ 1478.191845] ata10.02: cmd 60/f8:10:08:c0:00/00:00:00:00:00/40 tag 2 ncq 126976 in
[ 1478.191848] res d6/34:00:00:00:00/00:00:00:20:d6/00 Emask 0x2 (HSM violation)
[ 1478.195386] ata10.02: status: { Busy }
[ 1478.195609] ata10.02: error: { IDNF ABRT }
[ 1478.195814] ata10.03: exception Emask 0x100 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 1478.195814] ata10.15: hard resetting link
[ 1478.195814] ata10: controller in dubious state, performing PORT_RST
[ 1480.408238] ata10.15: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 1480.409144] ata10.00: hard resetting link
[ 1480.730221] ata10.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 1480.730638] ata10.01: hard resetting link
[ 1481.051302] ata10.01: SATA link down (SStatus 0 SControl 320)
[ 1481.051698] ata10.02: hard resetting link
[ 1481.379538] ata10.02: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 1481.379967] ata10.03: hard resetting link
[ 1481.699587] ata10.03: SATA link down (SStatus 0 SControl 320)
[ 1481.807972] ata10.00: configured for UDMA/100
[ 1481.810193] ata10.02: configured for UDMA/100
[ 1481.810207] ata10: EH complete
[ 1481.810207] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1481.810207] sd 9:0:0:0: [sdb] Write Protect is off
[ 1481.810207] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1481.812118] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1481.812118] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1481.812118] sd 9:2:0:0: [sdc] Write Protect is off
[ 1481.812118] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1481.812118] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1481.812118] sd 9:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 1481.812118] sd 9:0:0:0: [sdb] Write Protect is off
[ 1481.812118] sd 9:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 1481.812118] sd 9:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 1481.812118] sd 9:2:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 1481.812118] sd 9:2:0:0: [sdc] Write Protect is off
[ 1481.812118] sd 9:2:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 1481.812118] sd 9:2:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-05-14 15:50 ` Mark Lord
@ 2008-05-14 15:59 ` Mark Lord
2008-05-15 7:12 ` Tejun Heo
0 siblings, 1 reply; 17+ messages in thread
From: Mark Lord @ 2008-05-14 15:59 UTC (permalink / raw)
To: Tejun Heo; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> Mark Lord wrote:
>> Mark Lord wrote:
>>> ..
>>> At the moment, I have the Sil PM plugged in, and it all behaves nicely.
>>> The previous failure was with the Marvell PM, so I'll hook that up next
>>> and retest with it.
>> ..
>>
>> It went bonkers again. This is with 2.6.25.
>> I'll build 2.6.26-git and try again with that shortly.
> ..
>
> Okay, I have today's 2.6.26-rc2-git installed now.
> My PCIe notebook has an ExpressCard with this on it:
>
> 0d:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial
> ATA Raid II Controller (rev 01)
>
> That's the controller I use with sata_sil24 here.
>
> I have a Marvell 4140 port-multiplier (standalone card),
> and have a Seagate 750GB drive (pmp=0) and a Hitachi 500GB drive (pmp=2).
>
> When I simply do "hdparm -t" simultaneously on both drives,
> something gets very confused somewhere. Neither drive has any media
> errors,
> and this exact same test works fine with sata_mv in my other system.
> The same test also works fine with both controllers
> when using a Silicon Image PM instead of the Marvell.
>
> When I move the second drive to pmp=1 (instead of pmp=2),
> then sata_sil24 no longer has problems. Very peculiar.
>
> Here's the log from sata_sil24, ports 0,2, as it fails:
..
And here is the log from sata_sil24, ports 0,1, as it works:
[ 2936.456644] pciehp: Card present on Slot(5)
[ 2937.462101] program_fw_provided_values: Could not get hotplug parameters
[ 2937.463877] sata_sil24 0000:0d:00.0: enabling device (0000 -> 0003)
[ 2937.463892] ACPI: PCI Interrupt 0000:0d:00.0[A] -> GSI 19 (level, low) -> IRQ 19
[ 2937.463980] PCI: Setting latency timer of device 0000:0d:00.0 to 64
[ 2937.466777] scsi10 : sata_sil24
[ 2937.480614] scsi11 : sata_sil24
[ 2937.482399] ata11: SATA max UDMA/100 host m128@0xefa04000 port 0xefa00000 irq 19
[ 2937.482399] ata12: SATA max UDMA/100 host m128@0xefa04000 port 0xefa02000 irq 19
[ 2939.550635] ata11: SATA link down (SStatus 0 SControl 0)
[ 2941.744327] ata12: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 2941.744818] ata12.15: Port Multiplier 1.1, 0x11ab:0x4140 r192, 4 ports, feat 0x1/0x1f
[ 2941.748237] ata12.00: hard resetting link
[ 2942.098261] ata12.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 2942.098272] ata12.01: hard resetting link
[ 2942.503173] ata12.01: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 2942.503184] ata12.02: hard resetting link
[ 2942.826474] ata12.02: SATA link down (SStatus 0 SControl 320)
[ 2942.826483] ata12.03: hard resetting link
[ 2943.148091] ata12.03: SATA link down (SStatus 0 SControl 320)
[ 2943.190748] ata12.00: ATA-7: ST3750640NS, 3.BAF, max UDMA/133
[ 2943.190748] ata12.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 2943.250806] ata12.00: configured for UDMA/100
[ 2943.258014] ata12.01: ATA-8: Hitachi HDP725050GLA360, GM4OA50E, max UDMA/133
[ 2943.258014] ata12.01: 976773168 sectors, multi 0: LBA48 NCQ (depth 31/32)
[ 2943.258783] ata12.01: configured for UDMA/100
[ 2943.258811] ata12: EH complete
[ 2943.278337] scsi 11:0:0:0: Direct-Access ATA ST3750640NS 3.BA PQ: 0 ANSI: 5
[ 2943.278337] sd 11:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 2943.278337] sd 11:0:0:0: [sdb] Write Protect is off
[ 2943.278337] sd 11:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 2943.278337] sd 11:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 2943.278337] sd 11:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 2943.278337] sd 11:0:0:0: [sdb] Write Protect is off
[ 2943.278337] sd 11:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 2943.278337] sd 11:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 2943.278337] sdb: sdb1
[ 2943.295762] sd 11:0:0:0: [sdb] Attached SCSI disk
[ 2943.295762] sd 11:0:0:0: Attached scsi generic sg2 type 0
[ 2943.295762] scsi 11:1:0:0: Direct-Access ATA Hitachi HDP72505 GM4O PQ: 0 ANSI: 5
[ 2943.300739] sd 11:1:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 2943.300739] sd 11:1:0:0: [sdc] Write Protect is off
[ 2943.300739] sd 11:1:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 2943.300739] sd 11:1:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2943.300739] sd 11:1:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 2943.300739] sd 11:1:0:0: [sdc] Write Protect is off
[ 2943.300739] sd 11:1:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 2943.300739] sd 11:1:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2943.300739] sdc: sdc1
[ 2943.328995] sd 11:1:0:0: [sdc] Attached SCSI disk
[ 2943.328995] sd 11:1:0:0: Attached scsi generic sg3 type 0
[ 2943.338185] ata12.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7
[ 2943.338197] ata12: SError: { RecovComm }
[ 2943.338250] ata12.00: hard resetting link
[ 2943.662422] ata12.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 2943.773084] ata12.00: configured for UDMA/100
[ 2943.773436] ata12.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t4
[ 2943.773447] ata12: SError: { RecovComm }
[ 2943.773514] ata12.00: hard resetting link
[ 2944.102886] ata12.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 2944.194203] ata12.00: configured for UDMA/100
[ 2944.194376] ata12.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t3
[ 2944.194376] ata12: SError: { RecovComm }
[ 2944.194390] ata12.00: hard resetting link
[ 2944.514084] ata12.00: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 2944.609247] ata12.00: configured for UDMA/100
[ 2944.609526] ata12.00: limiting SATA link speed to 1.5 Gbps
[ 2944.609702] ata12.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t2
[ 2944.609710] ata12: SError: { RecovComm }
[ 2944.609777] ata12.00: hard resetting link
[ 2944.859691] ata12.15: qc timeout (cmd 0xe8)
[ 2944.859728] ata12.00: failed to write SCR 2 (Emask=0x4)
[ 2944.859734] ata12.00: COMRESET failed (errno=-5)
[ 2944.859743] ata12.00: failed to read SCR 0 (Emask=0x40)
[ 2944.859748] ata12.00: failed to read SCR 0 (Emask=0x40)
[ 2944.859753] ata12.00: reset failed, giving up
[ 2944.859761] ata12.15: hard resetting link
[ 2947.045128] ata12.15: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
[ 2947.045566] ata12.00: hard resetting link
[ 2947.365932] ata12.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 2947.365942] ata12.01: hard resetting link
[ 2947.685944] ata12.01: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[ 2947.685954] ata12.02: hard resetting link
[ 2948.011227] ata12.02: SATA link down (SStatus 0 SControl 320)
[ 2948.011238] ata12.03: hard resetting link
[ 2948.334180] ata12.03: SATA link down (SStatus 0 SControl 320)
[ 2948.429616] ata12.00: configured for UDMA/100
[ 2948.432581] ata12.01: configured for UDMA/100
[ 2948.432670] ata12.00: exception Emask 0x10 SAct 0x0 SErr 0x2 action 0x7 t1
[ 2948.432670] ata12: SError: { RecovComm }
[ 2948.434459] ata12.00: hard resetting link
[ 2948.755298] ata12.00: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
[ 2948.845434] ata12.00: configured for UDMA/100
[ 2948.845549] ata12: EH pending after 5 tries, giving up
[ 2948.845555] ata12: EH complete
[ 2948.845741] sd 11:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 2948.847678] sd 11:0:0:0: [sdb] Write Protect is off
[ 2948.847690] sd 11:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 2948.847756] sd 11:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2948.847820] sd 11:1:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 2948.847850] sd 11:1:0:0: [sdc] Write Protect is off
[ 2948.847854] sd 11:1:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 2948.847905] sd 11:1:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2948.847957] sd 11:0:0:0: [sdb] 1465149168 512-byte hardware sectors (750156 MB)
[ 2948.847986] sd 11:0:0:0: [sdb] Write Protect is off
[ 2948.847990] sd 11:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 2948.848040] sd 11:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2948.848093] sd 11:1:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
[ 2948.848121] sd 11:1:0:0: [sdc] Write Protect is off
[ 2948.848126] sd 11:1:0:0: [sdc] Mode Sense: 00 3a 00 00
[ 2948.848178] sd 11:1:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Simultaneous hdparm timings; nothing special happens.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-05-14 14:53 ` Mark Lord
2008-05-14 15:50 ` Mark Lord
@ 2008-05-15 6:51 ` Tejun Heo
1 sibling, 0 replies; 17+ messages in thread
From: Tejun Heo @ 2008-05-15 6:51 UTC (permalink / raw)
To: Mark Lord; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> Mark Lord wrote:
>> ..
>> At the moment, I have the Sil PM plugged in, and it all behaves nicely.
>> The previous failure was with the Marvell PM, so I'll hook that up next
>> and retest with it.
> ..
>
> It went bonkers again. This is with 2.6.25.
> I'll build 2.6.26-git and try again with that shortly.
>
> One thing about sata_sil24 --> it *really* doesn't like to handle
> hotplug events while in the midst of EH.
>
> I unplugged the host cable from the PM, and the EH just kept on
> going and going.
>
> I then unplugged the sata_sil24 PCIe host adapter card,
> and it still took quite some time to give up on the Energizer Bunny
> routine. :)
Heh... The retry count on the host side when PMP is attached is set
higher because losing the PMP means losing all devices beyond it. I
agree it would be better to add a total time limit there tho.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: ata_std_qc_defer not good enough for FIS-based switching ?
2008-05-14 15:59 ` Mark Lord
@ 2008-05-15 7:12 ` Tejun Heo
0 siblings, 0 replies; 17+ messages in thread
From: Tejun Heo @ 2008-05-15 7:12 UTC (permalink / raw)
To: Mark Lord; +Cc: Jeff Garzik, IDE/ATA development list, Alan Cox
Mark Lord wrote:
> Mark Lord wrote:
>> Mark Lord wrote:
>>> Mark Lord wrote:
>>>> ..
>>>> At the moment, I have the Sil PM plugged in, and it all behaves nicely.
>>>> The previous failure was with the Marvell PM, so I'll hook that up next
>>>> and retest with it.
>>> ..
>>>
>>> It went bonkers again. This is with 2.6.25.
>>> I'll build 2.6.26-git and try again with that shortly.
>> ..
>>
>> Okay, I have today's 2.6.26-rc2-git installed now.
>> My PCIe notebook has an ExpressCard with this on it:
>>
>> 0d:00.0 Mass storage controller: Silicon Image, Inc. SiI 3132 Serial
>> ATA Raid II Controller (rev 01)
>>
>> That's the controller I use with sata_sil24 here.
>>
>> I have a Marvell 4140 port-multiplier (standalone card),
>> and have a Seagate 750GB drive (pmp=0) and a Hitachi 500GB drive (pmp=2).
>>
>> When I simply do "hdparm -t" simultaneously on both drives,
>> something gets very confused somewhere. Neither drive has any media
>> errors,
>> and this exact same test works fine with sata_mv in my other system.
>> The same test also works fine with both controllers
>> when using a Silicon Image PM instead of the Marvell.
>>
>> When I move the second drive to pmp=1 (instead of pmp=2),
>> then sata_sil24 no longer has problems. Very peculiar.
>>
>> Here's the log from sata_sil24, ports 0,2, as it fails:
> ..
>
> And here is the log from sata_sil24, ports 0,1, as it works:
Heh.. detection doesn't work too well either. I have to tell you mv
4140 is my favorite pmp. It just behaved right. Ironically, all later
works were focused on simg 3726/4726's because they didn't behave. I'll
give well-deserved love to my 4140 and get back to you soon.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2008-05-15 7:12 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-28 21:06 ata_std_qc_defer not good enough for FIS-based switching ? Mark Lord
2008-04-28 22:08 ` Mark Lord
2008-04-28 23:11 ` Tejun Heo
2008-04-28 23:42 ` Mark Lord
2008-04-29 1:18 ` Tejun Heo
2008-04-29 2:26 ` Mark Lord
2008-05-14 14:11 ` Tejun Heo
2008-05-14 14:45 ` Mark Lord
2008-05-14 14:53 ` Mark Lord
2008-05-14 15:50 ` Mark Lord
2008-05-14 15:59 ` Mark Lord
2008-05-15 7:12 ` Tejun Heo
2008-05-15 6:51 ` Tejun Heo
2008-04-29 17:09 ` Mark Lord
2008-04-29 17:17 ` Mark Lord
2008-04-30 9:38 ` Tejun Heo
2008-04-30 14:02 ` Mark Lord
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).