If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
No announcement yet.
The Leading Cause Of The Recent Linux Kernel Power Problems
The ASPM-related messages from kernel can be very confusing, but there is an easy way to test if ASPM is active: Write something to /sys/module/pcie_aspm/parameters/policy
That's a good way to find out before rebooting the system, thanks. In my Sony Vaio EB's /var/log/dmesg, ASPM only appear once -- and that's from an older kernel. But the policy file indeed cannot be modified. I'll try forcing it when I get home.
To the earlier poster with a Vaio -- which model? I'm guessing the top-line Z and S models might have a better BIOS than the ones in the budget lines.
This site also tells a story...
"System Product Name", "System Name" and "To Be Filled By O.E.M. To Be Filled By O.E.M." are all the predefined values, and supposed to be filled in by the BIOS developers before shipping. If they cannot even fill this in....
If the kernel disables ASPM, it's a BIOS bug (on newer systems)?
I got a Thinkpad 410. So I request Lenovo to fix that?
I have a Lenovo Thinkpad T520 and I have the same situation. I think I will call Lenovo about this.
By the way, power consumption dropped from about 26 watts to 15 watts, which is about a 40% difference. Estimates on battery life increased from 5 hours to 8 hours, which is in-line with the battery life figures that I have seen on review sites. This is a new Sandy Bridge Optimus notebook that I purchased last month, so I was affected by the regression on day 1.
I've just tried on my Gigabyte H55N-USB3 mobo, no improvement at all here. Still 49W idle (even after setting /sys/module/pcie-aspm/etc. to powersave.) No improvement either when the CPU is in heavy use, or when running "vblank_mode=0 glxgears".
I don't have any PCIe card though, if that matters.
I'd definitely pay some extra euros for a phoronix approved BIOS/Coreboot implementation. But I usually buy extraordinary hardware like my Raon Everun Note - small companies that have problems to get their things out even with glitches. Still looking for a 7" Z-Series APU device (200 x 120 mm max.).
As some people have seen, for some equipment setting pcie_aspm=force
doesn't enable ASPM (I've a HP i5 laptop also). Message is:
[ 0.000000] PCIe ASPM is forcedly enabled -> (Result of pcie_aspm=force)
[ 0.809691] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
-> (Result of crap ACPI tables. FADT for beeing more precise)
Dumping and disassembling the ACPI tables, and looking into FACP, you can read:
PCIe ASPM Not Supported (V4) : 1
So the kernel, even when forcing aspm, is disabling it due to not support claimed by the ACPI tables.
In my particular case, my laptop (HP with core i5) has been giving me a lot of problems due to bad ACPI tables related to hybrid graphics (DSDT table), and now the power draining pbroblems results from the same.
The real origin for most of this problems are related to buggy/crappy ACPI tables made by manufacturers like HP and others. Two reasons arise here for doing that:
First is that many manufacturers use Microsoft iasl compiler instead of Intel one, being the MS one more permissive and far less standard compliant than Intel one. Linux uses intel standards, so a problem is reached here. Use of Microsoft compiler gives more compliance with W7 than with ACPI standars, and so is favorable for this purpose. It's like the past problem with IE6 and mozilla with HTML standars, mozilla was close to the standard, but pages were mainly designed for IE.
And second, that many manufactures have agreements with MS (Haven't you seen the W7 recommended logo?), so using MS compiler and enhancing the divergence with the standard, or directly giving bad options when no W7 OS could be part of their agreement, as it's easy to demonstrate for some HP laptops.
Reaching this point, I think that the real step forward for Linux market share growth,
is to have a very strict database of Linux-compliant hardware. Ubuntu has started to do this in: http://www.ubuntu.com/certification/
and I'm sure that my next laptop will be from that list.
The problem with this list is that it only contains ubuntu certified systems, and probably canonical has no so much equipment to test, so the list, right now, is small.
At this point, an effort to develop a live iso cd/usb with a full set of tests that can ensure users that they are buying a Linux-compatible equipment would be very nice.
This automated test should automatically report the results and feed a database of certified and not certified equipment for the iso version. This will allow users to chose ubuntu certified equipment (mainly enterprise grade), or test-suite certified equipment, avoiding to buy non-certified equipment, and thus avoiding
a lot of bugs and developer efforts.
If the iso test-suite is fully automated and works well, I could expect that many people like me, and even vendors will run it in their selling equipment, and so, It could reach a point (If MS lets that happens) that some manufacturers stop their policies of ACPI sabotage.
Think twice, problems like this, hybrid, and other never would happen without the ACPI crap/buggy/sabotage tables by makers.
Now what if you rebuild the ACPI tables with the Intel iasl and override the broken table with the rebuilt one in the kernel so the broken table is ignored and the kernel uses the patched/recompiled table?
I remember there's a kernel option somewhere that lets you override the BIOS's ACPI tables with tables you compiled yourself and I forgot what it is called.
Yes, in old kernels you can override the DSTD table. (only the DSDT, not all the tables),
but the option was taked out from kernel some years ago. The reason was that you can really break some things with that.
In the present times, I've read that some people that want to run OSX in their PCs, do some kind ok modified tables and BIOSes for their systems, but it's no Linux compatible.
About the Linux firmware kit, and the Fedora hardware list (I didn't knew the latter, and it's interesting). Yes, I was refering to some mix of this projects in an automated live iso that tests and send results to a centralized service.
About the other point. I know that linux kernel doesn't use the Intel iasl, but it takes ACPI specifications mainly from Intel, and so they have similarities when dealing with no Intel compliant tables (AFAIK)