On Tue, Apr 30, 2019 at 03:27:53PM -0600, Logan Gunthorpe wrote: > On 2019-04-24 4:46 p.m., Eric Pilmore wrote: > > Hi Folks, > > > > Does anybody know why a Host Bridge might break up a full-sized (max > > payload) TLP into single byte TLPs when those TLPs are traveling from > > peer-to-peer? > > Host bridges can't be relied on to do the right thing with respect to > P2P. This is why the p2pdma code explicitly rejects them. Bad > performance is often the symptom and splitting may be the cause (I've > never bothered to stick an analyzer on it. There are patches floating > around to add a whitelist to p2pdma which would be what you'd want to do > and avoid anything that doesn't go through a switch. Note that Max Payload Size may not be the same across root ports, so splitting transactions may be the correct thing to do under some circumstances. Kernel parameter "pci=pcie_bus_peer2peer" should make all MPS settings the same, though I doubt that will help for the hardware desribed here.