Linux Patches Updated For Sapphire Rapids C0.x Idle States
While Intel has been working on the Sapphire Rapids support for Linux going back years and to other key components like GCC and LLVM/Clang to provide for a good at-launch experience with 4th Gen Xeon Scalable processors, one bit that they hadn't squared away in advance of launch has been the new C0.x idle states. These new idle states between POLL and C1 allow for a mix of low latency and better power-savings than POLL.
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:
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.
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.
Add A Comment