CPUFreq Governor Tuning For Better AMD Ryzen Linux Performance
Our latest Ryzen Linux benchmarks are looking at the impact of the CPUFreq scaling driver's governors have on the performance of the Ryzen 7 1800X, including a look at the power consumption and performance-per-Watt when changing the governors.
ACPI CPUFreq is what takes care of the CPU frequency scaling for AMD Ryzen processors on Linux to switch between the high and low-power states depending upon load (there isn't any AMD-specific driver for modern AMD CPUs, unlike Intel's P-State driver). On most Linux distributions like Ubuntu, ondemand is the default CPUFreq governor. For this article I tested the Linux 4.10 kernel with CPUFreq's ondemand, performance, schedutil, powersave, and conservative governors. Some basic/quick information about the each of them:
Ondemand - Commonly the default, it scales the the driver based on current load and will usually go to the highest state then dropping back as deemed appropriate.
Performance - Aiming for running the CPU at its maximum frequency.
Schedutil - Schedutil is the newest governor and it's about making use of information from the Linux kernel's scheduler to try to better change the CPU frequency in a timely manner based on the scheduler utilization metrics.
Powersave - Powersave is a common governor for those looking to extend their battery life or reduce power consumption by running at the lowest frequency state for longer periods of time.
Conservative - This is similar to powersave in its approach and prefers running at lower frequencies for longer periods of time.
These tests happened on the AMD Ryzen 7 1800X system while using the Linux 4.10 kernel with Ubuntu 17.04 x86_64. During the testing process, the Phoronix Test Suite was monitoring the AC system power consumption using a WattsUp Pro power meter and also auto-generating performance-per-Watt data points.