Possible scheduler bug on Rock 5B RK3588 on 7.2.5
Trevor Hemsley
nospam at gdead.co.uk
Mon Sep 14 14:13:36 PDT 2026
Hi
I recently acquired an 8GB Radxa Rock 5B (they're comparatively cheap),
which uses a Rockchip RK3588 chip and have installed armbian on there
and while stress testing the new machine I noticed something quite odd.
If I run `openssl speed -multi 8` then watch using top or btop that
shows individual cores, I see it start off using all 8 cores and then
just stop using one of them at random. Every few minutes it will flip
the inactive core to a different one but there is always one idle. It
seems to prefer the 0-3 slower cores to be idle but I've also seen it
pick the faster cores 4-7 and stop using those but once it starts it
seems to never use more than 87.5% cpu as one core is dropped from use.
I do not think this is a thermal problem as the cpu temp reported is < 57C.
I have also run `for i in {0..7}; do taskset -c $i openssl speed &
done` and this starts 8 processes and pins each process to a specific
core in which case they all run at 100%, all of the time. This seems to
me to indicate that it is a scheduler problem as I'm manually telling it
where to run it. That solves the problem but is unrealistic in real ife.
I have tested this on several armbian supplied kernels from 6.12.58 to
7.2.5 and the results are similar on all of them. After some period of
time, it will stop using one or more cores even though there are
dispatchable tasks waiting. I have also substituted `stress --cpu 8` for
openssl speed -multi 8 and the results are the same so that seems to
rule out an openssl bug. If I increase the number of tasks the problem
still occurs, I've used 8 9 10 11 and 12 and after a while - the more
the requested tasks the longer it takes - it still ends up giving up on
one core. I have also had reports from 2 other Rock 5B users that can
reproduce this behaviour, one even told me that his was idling 2 cores
(using a 7.1 kernel) and the other says it's better after installing
kernel 7.2.5 although that is not my experience. I've tested 6.12.58,
6.18.44, 7.1.8 and 7.2.5 with very little change in symptoms.
I also have an old Odroid HC1 which uses a Samsung Exynos 5422 and has a
similar 8 core big:little processor setup and is running Debian 13 with
a 6.12.107 kernel and this does not exhibit the problem. Same underlying
Debian 13 version on this as the Rock 5B. I tested the Rock 5B with the
6.12.58 armbian kernel as it was the most similar to the working one on
the HC1 in case it was some form of regression.
There are no diagnostic messages in the output from `dmesg -T`. If it
were thermal or some hardware problem I would expect to be told about it
there.
$ uname -a
Linux rock-5b 7.2.5-edge-rockchip64 #1 SMP PREEMPT Fri Sep 11 09:51:26
UTC 2026 aarch64 GNU/Linux
I caught it idling 2 cores for about 2 minutes:
top - 20:49:22 up 1:36, 3 users, load average: 8.30, 8.31, 8.28
Tasks: 205 total, 9 running, 196 sleeping, 0 stopped, 0 zombie
%Cpu0 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si,
0.0 st
%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.3 si,
0.0 st
%Cpu2 : 99.7 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.3 hi, 0.0 si,
0.0 st
%Cpu3 : 99.7 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.3 hi, 0.0 si,
0.0 st
%Cpu4 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si,
0.0 st
%Cpu5 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si,
0.0 st
%Cpu6 : 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si,
0.0 st
%Cpu7 :100.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si,
0.0 st
1599 ? S 0:00 | \_ sshd-session: trevor at pts/0
1600 pts/0 Ss 0:00 | \_ -bash
10802 pts/0 S+ 0:00 | \_ stress --cpu 8
10803 pts/0 R+ 42:58 | \_ stress --cpu 8
10804 pts/0 R+ 43:40 | \_ stress --cpu 8
10805 pts/0 R+ 42:17 | \_ stress --cpu 8
10806 pts/0 R+ 43:00 | \_ stress --cpu 8
10807 pts/0 R+ 53:02 | \_ stress --cpu 8
10808 pts/0 R+ 55:12 | \_ stress --cpu 8
10809 pts/0 R+ 55:12 | \_ stress --cpu 8
10810 pts/0 R+ 47:29 | \_ stress --cpu 8
Still 8 threads running.
This looks like a kernel bug to me?
I'm writing from an email address that is not subscribed to
linux-arm-kernel as I looked at the archives and it's a bit too active
for me so if you have any questions or suggestions please include me direct.
Thanks
Trevor Hemsley
More information about the linux-arm-kernel
mailing list