Re: [PATCH] pci: Rework ASPM disable code

From: Jesse Barnes
Date: Fri Nov 11 2011 - 12:28:09 EST


On Fri, 11 Nov 2011 10:49:02 +0100
RafaÅ MiÅecki <zajec5@xxxxxxxxx> wrote:

> 2011/11/10 Matthew Garrett <mjg@xxxxxxxxxx>:
> > Right now we forcibly clear ASPM state on all devices if the BIOS indicates
> > that the feature isn't supported. Based on the Microsoft presentation
> > "PCI Express In Depth for Windows Vista and Beyond", I'm starting to think
> > that this may be an error. The implication is that unless the platform
> > grants full control via _OSC, Windows will not touch any PCIe features -
> > including ASPM. In that case clearing ASPM state would be an error unless
> > the platform has granted us that control.
> >
> > This patch reworks the ASPM disabling code such that the actual clearing
> > of state is triggered by a successful handoff of PCIe control to the OS.
> > The general ASPM code undergoes some changes in order to ensure that the
> > ability to clear the bits isn't overridden by ASPM having already been
> > disabled. Further, this theoretically now allows for situations where
> > only a subset of PCIe roots hand over control, leaving the others in the
> > BIOS state.
> >
> > It's difficult to know for sure that this is the right thing to do -
> > there's zero public documentation on the interaction between all of these
> > components. But enough vendors enable ASPM on platforms and then set this
> > bit that it seems likely that they're expecting the OS to leave them alone.
> >
> > Measured to save around 5W on an idle Thinkpad X220.
> >
> > Signed-off-by: Matthew Garrett <mjg@xxxxxxxxxx>
>
> Does it make sense to CC stable? To get it into 2.6.38+?

It's a pretty serious change that affects a lot of platforms, so I'd be
nervous about sticking it in stable right away. Maybe after some soak
time upstream and/or broad testing in distros.

--
Jesse Barnes, Intel Open Source Technology Center

Attachment: signature.asc
Description: PGP signature