Intel Developer Finds 50 Watt Power Regression In Linux
An Intel Linux kernel developer has discovered that since the Linux 3.10 kernel one of his powerful Xeon-based systems is going through 50 Watts more energy while idling than on pre-3.10 kernels. This power regression could affect smaller systems too, but fortunately the issue has been bisected and an investigation is in process.
Len Brown of Intel OTC wrote yesterday to the Linux kernel mailing list about a 50 Watt idle power regression bisected to Linux-3.10. On a system with 40 Intel Xeon CPU cores, Len Brown discovered the system was running through 50 more Watts of power on all kernel version since Linux 3.10 -- up through and including the latest Linux 3.13-rc3 kernel.
The issue was tracked down to an x86 change for using a generic idle loop. The change made the system go from idling in its package C6 state nearly the entire time to never having a chance to idle in this low-power C6 state. A commit to the Linux kernel from September attempted to improve the generic idle loop code, but it failed to properly do so and the power regression is still outstanding.
A proper fix for the solution is still being investigated but it looks like setting the "idle=mwait" kernel command-line parameter may help the situation.
Len Brown of Intel OTC wrote yesterday to the Linux kernel mailing list about a 50 Watt idle power regression bisected to Linux-3.10. On a system with 40 Intel Xeon CPU cores, Len Brown discovered the system was running through 50 more Watts of power on all kernel version since Linux 3.10 -- up through and including the latest Linux 3.13-rc3 kernel.
The issue was tracked down to an x86 change for using a generic idle loop. The change made the system go from idling in its package C6 state nearly the entire time to never having a chance to idle in this low-power C6 state. A commit to the Linux kernel from September attempted to improve the generic idle loop code, but it failed to properly do so and the power regression is still outstanding.
A proper fix for the solution is still being investigated but it looks like setting the "idle=mwait" kernel command-line parameter may help the situation.
20 Comments