[PATCH v7 4/5] PCI: add PCI controller for keystone PCIe h/w
From: Murali Karicheri <hidden>
Date: 2014-08-06 14:39:38
Also in:
linux-pci, lkml
On 07/30/2014 04:05 PM, Jason Gunthorpe wrote:
On Wed, Jul 30, 2014 at 03:34:44PM -0400, Murali Karicheri wrote:quoted
? Maximum remote read request size of 256 bytesThe PCI spec simply does not permit a completer to impose this limitation. See spec 2.3.1.1 It is not an option to error a read request because it is too long. All requests must be completed. All completions must be segmented according to the RCB and Max_Payload_Size.quoted
completion packets. So it seems to be able to segment up to maximum 256 bytes of read request. Where do I find the requirement in PCI spec that "read response segmentation at the host bridge does not work" ?You just said it. Segmenting up to only 256 bytes is not a limitation the completer can impose. Such a device is non-conformant.quoted
quoted
So, the only fix is that every downstream device must always have a MRSS set to less than the MPS of the host bridge.Why this can't be the default behavior in the PCI core? Any cons?It increases read request traffic and read response latency on the bus for large transfers. The MRSS is intented as a performance tuning knob, it is not something that ever needs to be set properly for correct bus operation. Jason -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Jason, Bjorn, It appears that Keystone PCI has a hardware limitation that can't handle read request size of greater than 256 bytes and a quirk is the way to handle this hardware limitation. I will be sending a patch to address this Murali