Messages in this thread | | | Subject | Re: [RFC] PCIE ASPM support | From | Shaohua Li <> | Date | Tue, 08 Jan 2008 09:34:43 +0800 |
| |
On Mon, 2008-01-07 at 10:19 -0800, Kok, Auke wrote: > Shaohua Li wrote: > > On Thu, 2008-01-03 at 11:33 -0800, Kok, Auke wrote: > >> Shaohua Li wrote: > >>> PCI Express ASPM defines a protocol for PCI Express components in the D0 > >>> state to reduce Link power by placing their Links into a low power state > >>> and instructing the other end of the Link to do likewise. This > >>> capability allows hardware-autonomous, dynamic Link power reduction > >>> beyond what is achievable by software-only controlled power management. > >>> However, The device should be configured by software appropriately. > >>> Enabling ASPM will save power, but will introduce device latency. > >>> > >>> This patch adds ASPM support in Linux. It introduces a global policy for > >>> ASPM, a sysfs file /sys/module/pcie_aspm/parameters/policy can control > >>> it. The interface can be used as a boot option too. Currently we have > >>> below setting: > >>> -default, BIOS default setting > >>> -powersave, highest power saving mode, enable all available ASPM state > >>> and clock power management > >>> -performance, highest performance, disable ASPM and clock power > >>> management > >>> By default, the 'default' policy is used currently. > >>> > >>> In my test, power difference between powersave mode and performance mode > >>> is about 1.3w in a system with 3 PCIE links. > >>> > >>> please review, any comments will be appreciated. > >> > >> quickly glanced this over since I recently disabled l1 ASPM for the e1000/e1000e > >> driven 82573 device which has issues with l1 ASPM. that immediately gives me the > >> question: how can I continue to disable 1l aspm by default for this device using > >> this infrastructure? > > I used to have a per-device interface, but thought the interface might > > be hard to use for users. If we really need the per-device interface, I > > can re-add it. > > > >> I do like the fact that there is a generic way to re-enable it for the users who > >> want to use it. Can this change be done when the device is already active? > > Yes, at least in my test. > > > >> Can you > >> change this parameter per device/module? > > Another way is to provide a helper for driver, and driver disables > > specific ASPM states. It sounds better to let driver do the disabling, > > as users haven't the knowledge? > > agreed, however this could still be usefull in debugging equipment for the > experienced user. In any case an easy handle for the driver to dis/enable ASPM > would certainly help our case, and possibly others. Then I'll add a config option, and enable the per-device interface with config enabled.
Thanks, Shaohua
| |