cpu 2.7x slower on ubuntu server 23.04 riscv64 Nezha/Sipeed images compared to 22.10 on mangopi mq-pro
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-allwinner (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
I think I found a bug/regression with the ubuntu server 23.04 riscv64 Nezha/Sipeed kernels.
Somehow, the CPU speed on my mangopi mq pro seems to have decreased by 2.7x compared to the 22.10 image.
The allwinner D1 should run at 1Ghz, and execute a single add per cycle.
On 22.10 I was able to confirm that executing `1024*1024*1024` add instructions took roughly a second, but on 23.04 it took 2.7 seconds (both fresh installs, with the same code [1]).
There were no resource hungry background processes running, when I checked top.
I also binary patched the opensbi image afterward, to disable mcountinhibit for `rdcycle`, and confirmed that even the hardware cycle counter was slower than 1Ghz. [2]
One second had 410398820 cycles instead of something closer to the expected 1073741824.
On suggestion from the #ubuntu webchat, I also tested adding `mitigations=off` to the linux cmd options, but that didn't change anything.
[1]
// test.c
#include <stdio.h>
#include <time.h>
int main(void)
{
for (int i = 0; i < 10; ++i) {
clock_t beg = clock();
extern void foo(void);
foo();
printf("%f\n", (clock() - beg) * 1.0/CLOCKS_
}
}
// test.S
.text
.global foo
foo:
li t0, (1024*1024*
1:
.rept 32
add a1, a1, a0
add a2, a2, a1
add a3, a3, a2
add a4, a4, a3
add a5, a5, a4
add a6, a6, a5
add a7, a7, a6
add a0, a0, a7
.endr
addi t0, t0, -1
bnez t0, 1b
ret
$ gcc -Ofast -march=rv64gc test.* && ./a.out
[2] https:/
ProblemType: Bug
DistroRelease: Ubuntu 23.04
Package: linux-image-
ProcVersionSign
Uname: Linux 5.19.0-
ApportVersion: 2.26.1-0ubuntu2
Architecture: riscv64
CasperMD5CheckR
CloudArchitecture: riscv64
CloudBuildName: server
CloudID: nocloud
CloudName: unknown
CloudPlatform: nocloud
CloudSerial: 20230415.2
CloudSubPlatform: seed-dir (/var/lib/
Date: Fri Jun 23 20:10:14 2023
ProcCpuinfoMinimal:
processor : 0
hart : 0
isa : rv64imafdc
mmu : sv39
uarch : thead,c906
ProcEnviron:
LANG=C.UTF-8
PATH=(custom, no user)
SHELL=/bin/bash
TERM=st-256color
XDG_RUNTIME_
SourcePackage: linux-allwinner
UpgradeStatus: No upgrade log present (probably fresh install)
Hey, sorry for not noticing before. You're right this was a bug and should be fixed in the 6.2 kernel in Lunar. It will also be backported to Jammy soon.