On Fri, May 17, 2013 at 5:36 PM, Phillip Susi <psusi@xxxxxxxxxx> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 05/17/2013 05:28 PM, Bjorn Helgaas wrote:> A link has two ends. > Both ends have to support ASPM in order for it >> to work. But ASPM on a particular link has no dependency on >> things elsewhere in the hierarchy. > > Got you... I guess I was still thinking regular PCI and the naming > "root complex" made me think it was the whole root bridge, when it > really is that particular x16 pcie port that goes to the radeon. > >> The link between 00:01.0 and 01:00.0 apparently only supports ASPM >> on one end (the downstream end), so ASPM won't work on it. > > I'll check the Intel spec sheet again, but I'm pretty sure it really > does support ASPM. The CPU probably allows writes to the register, > and my bios must have configured it to say it doesn't support aspm. I > guess I just need to wrangle setpci into trying to enable it despite > it not advertising support, or maybe see if I can get grub to poke the > capability register to make it say it supports it. setpci will write whatever you tell it to; it doesn't check any constraints like "is ASPM supported?" But the Link Capabilities register is read-only per spec, so likely you won't be able to change that field, at least not by writing it directly. You can always try using setpci to set the ASPM enable bits in the Link Control register on both the bridge and the device. When enabling, I think you're supposed to do the upstream end of the link first, then the downstream end (and the reverse for disabling). > One question I have though is how to identify which port device > corresponds to which downstream device connected to it. In other > words, how do you know 00:01.0 links to 01:00.0 ( other than seeing > that it's the x16 and knowing the radeon is plugged into the x16 slot ). lspci tells you that: 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 The "secondary=01" means the bridge leads to bus 01, which is where the 01:00.0 device is. Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html