Minisforum Says Disable Four of the MS-R1’s 12 CPU Cores – Is Linux Scheduling Them Properly?

One CPU-heavy task

Next I remove CPU affinity altogether and start a continuously runnable single-threaded workload, repeatedly recording which processor Linux chooses to run it on. There are four Cortex-A520 cores available and Linux is perfectly entitled to use one for light work, but a sustained CPU-bound process is exactly the sort of workload that should benefit from one of the fastest cores.

The result is very clear:

CPU  0:   9 samples
CPU  1: 191 samples
CPU  2:   0 samples
CPU  3:   0 samples
CPU  4:   0 samples
CPU  5:   0 samples
CPU  6:   0 samples
CPU  7:   0 samples
CPU  8:   0 samples
CPU  9:   0 samples
CPU 10:   0 samples
CPU 11:   0 samples

All 200 samples were on CPUs 0 and 1, the fastest 2.6 GHz Cortex-A720 pair. The process never moved to the 2.5 GHz, 2.3 GHz or 2.2 GHz A720 cores, and none of the four A520 cores received a single sample.

CPU group Samples Share
CPUs 0-1, 2.6 GHz A720 200 100.0%
CPUs 10-11, 2.5 GHz A720 0 0.0%
CPUs 6-7, 2.3 GHz A720 0 0.0%
CPUs 8-9, 2.2 GHz A720 0 0.0%
CPUs 2-5, 1.8 GHz A520 0 0.0%

This is exactly the behaviour I wanted to see. Earlier tests established that the kernel knows the relative capacity of the different CPU groups and that those figures closely match measured performance across the eight Cortex-A720 cores. Here we can see the scheduler putting that information into practice.

For a single sustained CPU-bound workload, Linux selects the fastest available tier and keeps the task there. The process did move between CPU 0 and CPU 1, but that has no practical significance because the two cores have the same maximum frequency, the same CPPC highest_perf value and the same scheduler capacity.

What matters is that the workload spent no sampled time on any of the ten slower processors. That is a good result, although a single-threaded workload is the easy case. Things become much more interesting once there are enough CPU-heavy processes to occupy all eight Cortex-A720 cores at the same time.

Next page: Page 4: The Eight-Task Test

Pages in this article:
Page 1: Introduction and CPU Layout
Page 2: Per-Core Performance
Page 3: One CPU-Heavy Task
Page 4: The Eight-Task Test
Page 5: Explicit CPU Affinity
Page 6: Background Load and Conclusions


Complete list of articles in this series:

Minisforum MS-R1 ARM Mini Workstation
IntroductionIntroduction to the series and interrogation of the Mini Workstation
BenchmarksBenchmarking the Minisforum MS-R1 ARM Mini Workstation
PowerTesting and comparing the power consumption
BIOSExploring the BIOS
UbuntuTesting the Ubuntu 26.04 LTS image
SchedulingMinisforum Says Disable Four of the MS-R1’s 12 CPU Cores
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted