Beelink Mini PC

Beelink EQi 304: Can Linux Make Proper Use of Its One Fast CPU Core?

A single demanding thread

I started with the easiest possible scheduling decision.

The system was otherwise idle and I ran a sustained single-threaded OpenSSL workload without setting CPU affinity. Linux therefore had five CPUs available, including an idle P-core.

I recorded where the process actually executed rather than relying on occasional snapshots of its current CPU.

Measurement Result
Time on P-core 99.80%
Time on LP E-cores 0.20%
CPU migrations 27

Linux gets this straightforward case almost exactly right. OpenSSL initially executed on CPU 3, one of the LP E-cores, but after around 57 ms of execution the scheduler moved it to CPU 0.

From that point the P-core was effectively its home. Across the full run, OpenSSL spent 99.80% of its recorded CPU time on CPU 0 and only 0.20% on the four LP E-cores combined.

The scheduler recorded 27 migrations, but that figure makes the movement sound more significant than it was. Most excursions away from CPU 0 were extremely brief, with the process quickly returning to the P-core.

For a sustained workload that benefits strongly from CPU 0, Linux identified the appropriate core very quickly and gave the process almost exclusive use of it.

The P-core is not always the fastest choice

The higher-frequency P-core is not automatically the best place for every workload. I also tested sysbench’s single-threaded CPU benchmark on each individual core.

CPU sysbench events/sec OpenSSL SHA-256
CPU 0 – P-core 3,317.10 3,858,765.86 kB/s
CPU 1 – LP E-core 5,133.26 3,049,553.54 kB/s
CPU 2 – LP E-core 5,127.93 3,049,387.45 kB/s
CPU 3 – LP E-core 5,128.47 3,049,636.58 kB/s
CPU 4 – LP E-core 5,137.99 3,049,599.31 kB/s

OpenSSL clearly favours the P-core, with SHA-256 throughput around 26.5% higher than on the average LP E-core.

sysbench produces the opposite result. Its prime-number workload is around 54.7% faster on the LP E-cores than on the P-core.

That is counter-intuitive given CPU 0’s much higher maximum frequency, but it demonstrates why describing it simply as the “fast core” can be misleading. The best core depends on the workload.

Next page: Page 3 – Foreground versus Background Work

Pages in this article:
Page 1 – Introduction and Core Layout
Page 2 – Single-Thread Scheduling and Core Performance
Page 3 – Foreground versus Background Work
Page 4 – Does Linux Keep the P-core in Reserve?
Page 5 – What Happens When Every Core Is Busy?
Page 6 – Conclusions


Complete list of articles in this series:

Beelink EQi 304 Mini PC
IntroductionIntroduction to the series and interrogation of the machine
BenchmarksBenchmarking the Beelink EQi 304 Mini PC
PowerTesting and comparing the power consumption
BIOSThe BIOS, which stands for Basic Input/Output System, plays a crucial role
CoresP-core and LP Efficient-cores examined
NoiseHow quiet is this mini PC?
NPU and LlamaTesting the NPU with Llama models
SchedulingCan Linux use its one fast CPU core efficiently?
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted