Re: PCIE ASPM support hangs my laptop pretty often

Kok, Auke
2008-02-06T00:26:38Z

?????? ??????????? wrote:
>>>>> I've patched my kernel with the PCIe ASPM and after setting
>>>>> echo powersave > /sys/module/pcie_aspm/parameters/policy
>>>>>
>>>>> I started to experience random hangs of my laptop.
>>>>> Hardware info:
>>>>> Thinkpad x60s 1704-5UG
>>>> the x60's chipset doesn't support ASPM properly afaik... bad idea.
>>> Well, the code shouldn't then cause a crash of the machine :)
>> The user enabled it specifically (where it is disabled by default)
>>
>> ASPM has been crashing e1000(e), which is why I've recently merged a patch
>> to disable L1 ASPM for the onboard 82573 nic on those platforms.
>>
>> this new infrastructure should work in the default configuration - enabling
>> ASPM where this system leaves it disabled is expected to give problems
>> unless you know what you are doing.
>
> In my defense, the patch documentation didn't say it doesn't work with my
> hardware, nor that it hangs the chipset :) and the promised 1.3w surelly
> looked nice.
>
> So, are there any benefits of ASPM if I have it in the kernel but it's set to
> default? I got the impression that "default" means not much power savings?

did the Kconfig not come with a big fat (EXPERIMENTAL) ?

it actually depends for each device on the PCI-Express bus. Most PCI-E ports
support it but the device has the option of advertising enablement of that
capability or not.

both platform and each device on the pci-e bus are involved. some sata chipsets
work great with it, some that might not even advertise the capability... but it's
really hit and miss.

Your report is great of course, no doubt about it. I hope that people understand
that this feature can seriously break things at the bus level. It makes me feel a
lot better about the issues we had with some of our network cards and ASPM :)

once we get some feeling about how good ASPM works in the field for people we
might have to blacklist certain platforms or devices.

you could (for instance) try to see which device on your busses support ASPM and
work on per-device ASPM parameters (which is one of the things I suggested before)
so that we get an idea of which device is badly behaving with ASPM on your system.

Cheers,

Auke