Saturday, June 8, 2019

debian - 20 Watt difference between C-states enabled in Bios and same states in Intel_idle?



I am trying to reduce the idle power usage of a dual-Haswell-EP server made by Intel. If I enable the C-states in the UEFI-Bios, the minimum power consumption is about 80W. However, if I disable C-states in the Bios and boot the system, the minimum power usage never drops below 100W. (everything else same, same microcode, same frequencies, same Bios version)



This is surprising, because in both cases, after booting Debian, the intel_idle driver takes over the control as reported by /sys/devices/system/cpu/cpuidle/current_driver. I do not see any reason, why the power consumption should be different? powertop and turbostat report the same 99.9% C6 state for all cores.




The power draw is measured via sensors or the inbuilt BMC console.



For reasons irrelevant to this question, I would like to boot with the C-states disabled and then let the intel_idledriver take over. Is there any other implied difference from disabling the C-states in the Bios and a way how I could achive the same minimal power consumption?


Answer



When changing C-states via BIOS, some other parameters can be automatically set to lower performance/power. For example:




  • CPU performance bias can be changed

  • PCI-E Active State Power Management (ASPM) can be disabled;


  • other integrated component can be set at increased efficiency / lower performance.



I often saw BIOS configurig too aggressive power management settings; I generally enable any C states in the BIOS and set it to "Balanced/Optimized" or "Performance" profiles, but leaving any C/P states/transitions choice to the Linux kernel.


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...