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
3 Comments
Oldest
Newest Most Voted
Liam
Liam
16 days ago

Hi Steve

Can you point me to where Minisforum say about disabling cores? Is that public info?

Ralph
Ralph
16 days ago

I really hate ARM processors. Terrible performance, terrible support, terrible value for money.