Member-only story
Stop using idle=poll
In modern computing, the challenge of system-level optimisation is balancing performance with power efficiency. High performance often requires keeping a CPU in a low-latency state, while power savings require allowing it to enter a deep sleep. The Linux kernel’s Power Management Quality of Service (PM QoS) framework is a powerful tool designed to manage this trade-off. This document will focus on how PM QoS can be used for CPU-specific power management.
The PM QoS framework allows both kernel and user mode to set constraints on the kernel’s energy-efficiency features to prevent performance from dropping below a required level. This is achieved by creating constraints that the kernel’s power management governors must respect.
Note: The following information is applicable since Linux kernel v4.14 e.g. Red Hat Enterprise Linux (RHEL) 8.
The Problem with idle=poll
In the past, to guarantee low-latency performance for critical applications — such as high-frequency trading platforms — system administrators often used the idle=poll kernel boot parameter. This is a static, system-wide approach that tells the kernel to effectively disable CPU C-states idle-states. Instead of allowing the CPU to enter a deep power-saving C-state when it has no work, idle=poll forces the logical CPU to stay in a busy loop, continuously…

![Measuring Per‑Process User and System CPU Utilisation through /proc/[pid]/stat](https://miro.medium.com/v2/resize:fit:1358/format:webp/1*t_OAgK3Fn7L9zPbziAJ6KA.png)





