Linux Patches Updated For Sapphire Rapids C0.x Idle States

Written by Michael Larabel in Intel on 11 June 2023 at 06:33 AM EDT. Add A Comment
INTEL
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.

Sapphire Rapids CPU


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.

Good results


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.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week