07-12-2011 01:05 PM - edited 07-12-2011 03:08 PM
PCI Express Active-State Power Management (ASPM) has been disabled due to a known incompatibility with the hardware in this computer.
Platform Power Management Capabilities: PCI Express Active-State Power Management (ASPM) Disabled.
The above message appears on Windows running 'powercfg -ENERGY' in a cmd window started as Administrator.
What's keeping you from fixing ASPM, Lenovo, beeing so keen on battery life?
Thinkpad x201 3323A2G here, many others are still reporting this problem for older and newer hardware across various models.
Not only does this problem arise on Windows, since Linux kernel 2.6.38 ASPM is disabled for machines of which the BIOS does not report ASPM to work well: "ACPI FADT declares the system doesn't support PCIe ASPM, so disable it".
Now, there have been quite a few posts about it, with different titles and from within different topics or models, though as it does seem to happen on most of the Thinkpads i recreated this post for the following reasons..
Simple question remains: why is it disabled from the BIOS, when there's an option for it in the BIOS?
Short while ago, i descided to try and enable it myself manually (explained on the linuxwireless.org website)..
My power usage went from 7-8 Watts, to 6-7 Watts. Intel's report on power savings are indeed correct.
Extra, for Linux users:
Does 'lspci -vv | grep ASPM' result in Disabled, and booting with kernel option 'pcie_aspm=force' doesn't solve it?
WARNING, THESE STEPS MAY DAMAGE YOUR HARDWARE, EXECUTE AT YOUR OWN RISK.
Quite dangerous option: If you'd like to try this out on Linux yourself, and your distro is not using a 2.6.37 or prior kernel, and you feel like a dangerous adventure (because you can damage your hardware if you do it wrong or make a little mistake), follow the guide on http://linuxwireless.org/en/users/Documentation/ASPM#Enabling_ASPM_with_setpci or do it automatically with http://linuxwireless.org/en/users/Documentation/ASPM#Enabling_ASPM_with_enable_aspm.
Less dangerous option: If you don't feel that adventurous, you can get a 2.6.37 or prior kernel linux bootcd, mount your filesystem, and execute the 'lspci -s 00:1c.1 -xxx > /mnt/yourfilesystem/lspci-working-001c1' like explained on the above linuxwireless.org page (replace the 00:1c.1 with the device you'd like to use). Boot your own distro, extract current information for a device like you did on the live bootcd like 'lspci -s 00:1c.1 -xxx > /lspci-current-001c1'. Now run 'diff -u /lspci-working-001c1 /lspci-current-001c1' and make up the setpci command out of the result you get, as you now know what Linux used to set before.
07-12-2011 06:47 PM
We can look into this a bit. The link to the MS site shows input from 3 users, 1 on a sony, 1 on undetermined brand, and 1 on a Thinkpad.
The results you note are a savings of 1 watt (from 7-8 to 6-7 range) correct? Are you saying that your X201 will run and be usable with a total consumption of 6-7 watts? If so, that is impressive.
Systems can use a wide range of power on battery, perhaps 15 watts running integrated graphics with CPU in a power saving (lower clock speed ) state and LCD dimmed. More active and typical use with Wifi and HDD and DVD use will bump this up quite a bit. Gaming, or other compute and graphic intensive applications can push up demand above 30 watt range on many systems.
I ask, because given a typical power budget of 15w-30w, are we chasing a potentinal 1 watt savings that could be worth maybe 8% if the system were just idling and perhaps 2% with more active use? I just want to make sure I understand the real world impact here.
Thanks for bringing this up - will check out some of the other discussions on other models and review with our engineering team.
07-20-2011 12:29 PM - edited 07-20-2011 12:30 PM
Sorry for not getting back to you directly, been a crazy week. I'll answer the questions in the order you've written them.
The MS site indeed shows input from 1 Thinkpad user. The idea behind the link was merely to inform about the issue beeing addressed at Microsoft as well, regardless of the brand.
Power consumption reported by other people are about the same, if you look at the reports at the following ThinkWiki.org page: http://www.thinkwiki.org/wiki/Idle_consumptions. No Thinkpad x201 reports though, but that one should'nt be a magnitude more of an x200.
One real example i could give is when i took my Thinkpad x201 to work, for an all-day hands-on course, with the 9-cell battery. I had no charger with me, no backup-battery either. Turned out i was the only one in the course (between the Macbooks and Dell laptops) who didn't have a charger connected and was working completely from battery, using Wifi to connect to the outside (using the connections for webpages, local server, and an internet chat). At the end of the day, my laptop reported to have around 3.5 to 4 hours left.
HDD's can be spun down on a regular base (where their power usage drops to negligable levels), the Thinkpad x201 i have does not have an optical drive. Gaming is very intensive, which won't give those 8 hours of course, as they want every bit of performance your system can give, but still gives hours of fun though.
The typical configuration advise is not to throttle the whole laptop down, but to have it do the tasks as fast as possible, so it can sleep as long as possible in between. So even if you do some intensive tasks now and then, most of the time you'll be working in the applications you've already loaded up.
In the case of ASPM, once the PCIe devices or links don't need to perform anymore, ASPM will reduce overall power consumption by placing the link PHY into a low-power mode and instructing other devices on the link to follow suit, as stated and explained on http://en.wikipedia.org/wiki/Active_State_Power_Management.
Not only does every little bit of power saving help.. but why have the user selectable (enable/disable) ASPM option in the BIOS, if it doesn't work anyway?
As a Thinkpad x201 owner, hope to see a new BIOS release in the future for this model with ASPM fixes. Please let me know if you'd wish more information or related research/material from my side!
07-25-2011 07:14 AM
I have the same problem on X220, and IIRC on Linux with ASPM forcibly enabled I get 7-8 watts at idle with the screen on.
This is with BIOS 1.19, flashed today. I have PCI Express Power Management enabled in BIOS. It should be an easy fix for your BIOS team.
07-30-2011 01:05 AM - edited 07-30-2011 01:06 AM
PCI fixups using eGPU Setup 1.x
While waiting for a bios fix consider installing eGPU Setup 1.x, editting the startup.bat file and putting the required setpci commands into it to enable ASPM then chainload to your required OS (Windows/Linux). I believe the bios will even restore those PCI space settings after a resume-from-sleep/standby making it a 100% effective workaround.
The same can be done with Linux' grub2 bootloader which has a setpci module to do such fixups.
08-18-2011 09:11 PM - edited 08-18-2011 09:13 PM
Just try to enable ASPM by command "pcie_aspm=force" on my T61 Nvidia running Ubuntu 11.04. The idle power consumption drop significantly from 15.6W to 11.9W.
Using the method described in Linux Wireless I can activate ASPM L1s for my Intel 4965ABGN wireless card. Some observations:
- When ASPM for wireless card is enabled, after hibernating and resume it is still enabled.
- Enabling ASPM in grub bootloader (using command like setpci -s 03:00.0 0xF0.B=0x43) does not have effect: after booting into Ubuntu ASPM is still disabled.
Therefore, the setpci command work only at operating system level, but not hardware or BIOS level. And the workarround for enabling ASPM in Windows proposed by Nando has no effect.
Still want to enable ASPM in Windows for my T61!
08-23-2011 03:51 AM
I was a bit wrong about usability of setpci command in my previous post.
Actually, I was success in enabling ASPM in Windows 7 using the setpci command in grub boot loader (many thanks to Nando4 for the hint on setpci command in grub loader).
The power consumption of my nVidia T61 is decreased by 1.8-1.9W, from 13.5 to 11.6W.
Details will be posted later, in a few days, when I have time.
02-18-2012 11:04 AM
It looks that it is still disabled on lenovog470 w/ current kernel w/ patched dsdt
Can you help :
Linux lap 3.2.6+ #11 SMP Sat Feb 18 15:22:19 CET 2012 x86_64 GNU/Linux [ 0.759929] pci 0000:00:1c.1: bridge window [mem 0xd0400000-0xd04fffff] [ 0.759948] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] [ 0.760158] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT] [ 0.760212] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT] [ 0.760387] \_SB_.PCI0:_OSC invalid UUID [ 0.760389] _OSC request data:1 1f 1f [ 0.760392] pci0000:00: Requesting ACPI _OSC control (0x1d) [ 0.760507] \_SB_.PCI0:_OSC invalid UUID [ 0.760508] _OSC request data:1 0 1d [ 0.760511] pci0000:00: ACPI _OSC request failed (AE_ERROR), returned control mask: 0x1d [ 0.760565] ACPI _OSC control for PCIe not granted, disabling ASPM [ 0.765015] ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 *4 5 6 10 11 12 14 15)