IBM Working On More Linux CPU Power Usage Optimizations For Latency-Sensitive Workloads
IBM engineers have been working on improvements to the Linux kernel's power savings while running latency-sensitive tasks but still delivering comparable performance. Their own numbers for a patched kernel are showing significant power saving benefits as much as ~20%.
The new patch series builds off earlier work published by IBM on providing a per-task "latency_nice" knob for scheduler hints. Latency_nice can be used for indicating latency requirements of a given task so the scheduler can make better decisions. With that latency_nice work published over recent months, among the use-cases talked about there was for better turbo/boost frequency decisions based upon grouping of tasks with similar latency requirements. Additionally, hypothetically having the scheduler not assign low-latency tasks to a CPU encountering AVX-512 based workloads where generally the core frequencies become quite limited.
With the new patches from IBM's Parth Shah is idle gating in the presence of latency-sensitive tasks. This work is about preventing the CPU idle governor from dropping to lower power levels when running a task indicated by latency_nice to be low-latency.
The proposed patches restrict the CPU running latency-sensitive tasks to go into any idle state in order to avoid the exit latency impact when needing to ramp back up to a higher power state.
The workloads benefiting the most from these patches are low-latency those that often go in a sleep-wake-sleep pattern like databases, GPU workloads, and other real-time applications. From IBM's own numbers, there was around a 20% improvement to the energy efficiency for a scheduler benchmark as well as around 20% for a PostgreSQL server.
We'll see where these idle gating patches lead as well as more broadly the latency_nice implementation and what other optimizations get possibly wired into benefiting from it.
The new patch series builds off earlier work published by IBM on providing a per-task "latency_nice" knob for scheduler hints. Latency_nice can be used for indicating latency requirements of a given task so the scheduler can make better decisions. With that latency_nice work published over recent months, among the use-cases talked about there was for better turbo/boost frequency decisions based upon grouping of tasks with similar latency requirements. Additionally, hypothetically having the scheduler not assign low-latency tasks to a CPU encountering AVX-512 based workloads where generally the core frequencies become quite limited.
With the new patches from IBM's Parth Shah is idle gating in the presence of latency-sensitive tasks. This work is about preventing the CPU idle governor from dropping to lower power levels when running a task indicated by latency_nice to be low-latency.
The proposed patches restrict the CPU running latency-sensitive tasks to go into any idle state in order to avoid the exit latency impact when needing to ramp back up to a higher power state.
The workloads benefiting the most from these patches are low-latency those that often go in a sleep-wake-sleep pattern like databases, GPU workloads, and other real-time applications. From IBM's own numbers, there was around a 20% improvement to the energy efficiency for a scheduler benchmark as well as around 20% for a PostgreSQL server.
We'll see where these idle gating patches lead as well as more broadly the latency_nice implementation and what other optimizations get possibly wired into benefiting from it.
8 Comments