Intel has been preparing Idle driver support for the company's next-gen Xeon CPUs, codenamed "Sapphire Rapids", over the last five months. Michael Larabel of Phoronix notes that there is still a limitation within the upcoming Intel Scalable CPUs. The processor power state handling is mutually exclusive; specifically, core C-states (C-states) C1 and C1E, or "C1 Enhanced". The company has been unable to activate both C-states simultaneously, but with the current firmware update published by Intel, it appears a fix has been manufactured.
Intel Engineers Release New Sapphire Rapids Scalable CPU Firmware on Linux, Improving the Power States For Reduced Consumption
Several contemporary processors have numerous C-states. Intel utilizes eight CPU power states for the Sapphire Rapids Xeon series. C-state C2 is considered a package C-state, or PC-state, while the remainder of C-states used by the company is regarded as a C-state & a PC-state simultaneously.
Intel could not allow the Xeon "Sapphire Rapids" scalable CPU to enable C-states simultaneously. To alleviate the issue, Intel adjusted the Linux kernel to support only the C1 C-state and the C6 state utilizing the intel_idle driver and including an option for boot time when the system prefers the C1E state for enhanced savings on power.
Intel initially allowed their Intel Xeon Sapphire Rapids CPUs to activate C1 over C1E to garner better performance instead of focusing on power management. Utilizing the enhanced C1E instead of the C1 C-state allows the system to consume less power and save more when idle. However, the exit latency is much longer, especially when switching back to regular operation from an inactive state. Larabel notes that Intel's Alder Lake processors utilize C1E above C1 C-states.
Now, instead of exclusively having C1 and C1E states independent, the latest firmware allows for the limitation to be lifted.
For the upcoming kernel, Intel's Sapphire Rapids processors will offer the C1E C-state as the default on Linux platforms in addition to the original C1 C-State. In turn, Intel has reverted slightly to earlier enablement for Sapphire Rapids and the intel_idle driver that will be queued into Linux 5.20. The company has also marked the change for "back-porting to the current stable series," as reports Larabel.