On Mon, 2018-12-10 at 11:56 +0000, Jonathan Cameron wrote: > Hi All, > > This is perhaps a somewhat unusual RFC as it's to ask for feedback on an ECR > that is currently under discussion in the PCI SIG. That ECR, at least partly, > came out of the issues highlighted during the discussion of P2PDMA. In > that patch set, p2pdma is only allowed if there is a switch between the > devices involved ensuring the path does not pass through a root port. > Put simply there is no way to know if a root complex will allow p2p or not. > > So we are asking for feedback at a stage where modifications to the > proposal can be made. Eric has agreed to this being shared with mailing list > to hopefully get such feedback. Note this is under active discussion within > the SIG so inputs in that forum also welcome. > > I would recommend reading the ECR and presentation for more details. > Anyone who can't get to Google Drive, email me and I'll send a copy directly. > > ECR: https://drive.google.com/open?id=1X08pfyjkNwSfpTVBuiut90ajxBZd7BXg > Slides: https://drive.google.com/open?id=11d3egA8x91d99-QqfYGZ-MxLGrHpJHCK > > My summary probably won't be great, but I'll give it a go to persuade people > to look at the real docs! > > Problem Statement: > > Linux does not generally enable Peer to Peer because (amongst other reasons) > it does not know which Root Complexes support Peer to Peer. > > * Some Root Complexes do not support Peer to Peer > * Some Root Complexes only support Posted Peer to Peer > * Some Root Complexes only support Peer to Peer within one PCIe Segment > * Some Root Complexes only support Address Decode Peer to Peer (no ID routing) > * Some Root Complexes may not support Peer to Peer from Integrated End Points > > Related other issue > * MPS must be programmed the same across all devices supporting P2P > * Hot plugged devices might require a smaller MPS than was programmed. > > Solution: > * New extended capability and control (though only one bit in the control) > * Advertise what a Peer to Peer Root Port and Switch Down Stream ports can do. > * Define packet splitting scheme for MPS mismatches. > - Rules on how this must be done if supported. > > All feedback welcome. Let's make sure we get this right. > > Thanks, > > Jonathan Cameron > Huawei Looking this over some of this seems redundant with the ACS P2P Request Redirect and Completion Redirect functionality. I was curious if there was a reason why you couldn't use something like that to at least get some early enabling going for peer-to-peer root port pass through? Also, I have not seen called out anywhere in your documents how this might interact with something like Address Translation Services (ATS). I'm assuming there would be scenarios where the translation agent would need to be a part of the p2p topology. Thanks. - Alex