
Intel engineers have been working on the Linux patches for these C0.1 and C0.2 idle states for a few months now to help with power efficiency of the new Sapphire Rapids processors. This work goes along with other pending patches to help boost VM performance under heavy I/O use.
On Saturday the third iteration of the Sapphire Rapids C0.x idle states support was published. The patch cover letter elegantly sums up the work as:
"Idle states reduce power consumption when a CPU has no work to do. The most shallow CPU idle state is "POLL". It has lowest wake up latency, but saves little power. The next idle state on Intel platforms is "C1". It has has higher latency, but saves more power than "POLL".
Sapphire Rapids Xeons add new C0.1 and C0.2 idle states which conceptually sit between "POLL" and "C1". These provide a very attractive midpoint: near-POLL wake-up latency and power consumption halfway between "POLL" and "C1".
In other words, we expect all but the most latency-sensitive users to prefer these idle state over POLL.
This patch-set enables C0.2 idle state support on Sapphire Rapids Xeon (later - SPR). The new idle state is added between POLL and C1."
With this third iteration are some minor technical changes as this new code works toward the mainline kernel.
With Intel's testing of the new patches, the AC power dropped by 13% and the RAPL CPU power dropped by 18% when comparing the percent change from POLL to C0.2. Meanwhile having C0.2 also allowed the Hackbench score to improve by about 4% for 4 groups. With the patches the C0.2 state can also be disabled if desired via the "intel_idle.states_off=2" kernel option.
Interesting work and hopefully this code will make it to the mainline soon -- potentially even for v6.5 if everything is looking good in this third version of the patches. For the time being the work can be found on the linux-pm list . Once it's picked up by mainline I'll be sure to run some benchmarks.