Hi Tejun,
I know you're not working on PMP at the moment, but maybe you have some insight
here:
I have a SiI3124 PCI-X controller, currently plugged into a PCI slot:
02:06.0 RAID bus controller [0104]: Silicon Image, Inc. SiI 3124 PCI-X Serial
ATA Controller [1095:3124] (rev 01)
Subsystem: Silicon Image, Inc. Unknown device [1095:7124]
Flags: bus master, stepping, 66MHz, medium devsel, latency 32, IRQ 177
Memory at fdfff000 (64-bit, non-prefetchable) [size=128]
Memory at fdff0000 (64-bit, non-prefetchable) [size=32K]
I/O ports at 9c00 [size=16]
Expansion ROM at 80000000 [disabled] [size=512K]
Capabilities: [64] Power Management version 2
Capabilities: [40] PCI-X non-bridge device
Capabilities: [54] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable-
I have been using this configuration with a DS-1220 external enclosure + port
multiplier:
Mar 9 01:09:32 localhost kernel: ata7: SATA link up 1.5 Gbps (SStatus 113
SControl 300)
Mar 9 01:09:32 localhost kernel: ata7.15: Port Multiplier 1.1, 0x1095:0x4726
r0, 5 ports, feat 0x9/0xb
The system is currently running linux-2.6.18.8 + libata-tj-2.6.18.1-20061020
but behaves the same with linux-2.6.17.4 + libata-tj-2.6.17.4-20060710
Generally this configuration has been working well for a long time.
Occasionally, I get an error like this:
Mar 9 12:53:18 localhost kernel: ata8.00: exception Emask 0x0 SAct 0x1 SErr
0x0 action 0x2 frozen
Mar 9 12:53:18 localhost kernel: ata8.00: tag 0 cmd 0x61 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 9 12:53:18 localhost kernel: ata8.15: hard resetting port
Mar 9 12:53:20 localhost kernel: ata8.15: SATA link down (SStatus 0 SControl
300)
Mar 9 12:53:20 localhost kernel: ata8.15: failed to read PMP GSCR[0]
(errno=-16)
Mar 9 12:53:20 localhost kernel: ata8.15: PMP revalidation failed (errno=-16)
Mar 9 12:53:20 localhost kernel: ata8.15: retrying hardreset in 5 secs
Mar 9 12:53:25 localhost kernel: ata8.15: hard resetting port
Mar 9 12:53:28 localhost kernel: ata8.15: SATA link up 1.5 Gbps (SStatus 113
SControl 300)
Mar 9 12:53:28 localhost kernel: ata8.00: hard resetting port
Mar 9 12:53:29 localhost kernel: ata8.00: SATA link up 3.0 Gbps (SStatus 123
SControl 300)
Mar 9 12:53:29 localhost kernel: ata8.01: hard resetting port
Mar 9 12:53:29 localhost kernel: ata8.01: SATA link up 3.0 Gbps (SStatus 123
SControl 300)
Mar 9 12:53:29 localhost kernel: ata8.02: hard resetting port
Mar 9 12:53:30 localhost kernel: ata8.02: SATA link up 3.0 Gbps (SStatus 123
SControl 300)
Mar 9 12:53:30 localhost kernel: ata8.03: hard resetting port
Mar 9 12:53:30 localhost kernel: ata8.03: SATA link up 3.0 Gbps (SStatus 123
SControl 300)
Mar 9 12:53:30 localhost kernel: ata8.04: hard resetting port
Mar 9 12:53:31 localhost kernel: ata8.04: SATA link up 3.0 Gbps (SStatus 123
SControl 300)
Mar 9 12:53:31 localhost kernel: ata8.00: configured for UDMA/100
Mar 9 12:53:32 localhost kernel: ata8.01: configured for UDMA/100
Mar 9 12:53:32 localhost kernel: ata8.02: configured for UDMA/100
Mar 9 12:53:32 localhost kernel: ata8.03: configured for UDMA/100
Mar 9 12:53:32 localhost kernel: ata8.04: configured for UDMA/100
Mar 9 12:53:32 localhost kernel: ata8: EH complete
On the "old" machine, these were infrequent -- maybe once every few
hours, or every couple days. They just caused a small delay and
everything keeps running fine. However, I've recently upgraded the
motherboard to one with PCI-X and tried placing the card in a PCI-X
slot. Then the errors sometimes occur so frequently as to render the
disks almost unusable:
$ grep timeout syslog.0
Mar 8 22:02:03 localhost kernel: ata7.03: tag 3 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:02:47 localhost kernel: ata8.02: tag 4 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:03:33 localhost kernel: ata7.00: tag 0 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:04:48 localhost kernel: ata7.04: tag 4 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:05:32 localhost kernel: ata8.00: tag 0 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:06:16 localhost kernel: ata8.02: tag 4 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:07:00 localhost kernel: ata7.03: tag 4 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:08:26 localhost kernel: ata8.00: tag 0 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:09:12 localhost kernel: ata7.03: tag 3 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:11:04 localhost kernel: ata8.00: tag 0 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:11:48 localhost kernel: ata7.03: tag 3 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:12:48 localhost kernel: ata7.04: tag 4 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:13:32 localhost kernel: ata7.04: tag 1 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
Mar 8 22:14:19 localhost kernel: ata8.03: tag 4 cmd 0x60 Emask 0x4 stat 0x40
err 0x0 (timeout)
..
As far as I can tell, there was never any data corruption, just
frequent timeouts. It definitely seems related to load, something
like deleting large files or running fsck.ext3 would trigger it
continuously, while copying files from the array to another disk
triggered it maybe every once every 5-10 minutes.
After noticing this in the syslog:
Mar 9 01:17:28 localhost kernel: sata_sil24 0000:04:01.0: Applying completion
IRQ loss on PCI-X errata fix
I decided to try putting the card into a plain PCI slot on the new
motherboard and it's much better again, back to the point where the
timeouts are infrequent enough to be not a big problem.
Any idea what the cause of these timeouts are?
If not I think my next course of action will be to try swapping the
controller to a PCIe SiI3132, then maybe give Robin H. Johnson's
2.6.20 port of the PMP patches a try.
-jim
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html