cpu 2.7x slower on ubuntu server 23.04 riscv64 Nezha/Sipeed images compared to 22.10 on mangopi mq-pro

Bug #2024935 reported by camel-cdr
6
This bug affects 1 person
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_PER_SEC);
 }
}
// test.S
.text
.global foo
foo:
        li t0, (1024*1024*1024/(8*32))
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://github.com/camel-cdr/rvv-d1/#extra-enable-rdcycle

ProblemType: Bug
DistroRelease: Ubuntu 23.04
Package: linux-image-5.19.0-1009-allwinner 5.19.0-1009.9
ProcVersionSignature: User Name 5.19.0-1009.9-allwinner 5.19.17
Uname: Linux 5.19.0-1009-allwinner riscv64
ApportVersion: 2.26.1-0ubuntu2
Architecture: riscv64
CasperMD5CheckResult: unknown
CloudArchitecture: riscv64
CloudBuildName: server
CloudID: nocloud
CloudName: unknown
CloudPlatform: nocloud
CloudSerial: 20230415.2
CloudSubPlatform: seed-dir (/var/lib/cloud/seed/nocloud-net)
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_DIR=<set>
SourcePackage: linux-allwinner
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
camel-cdr (camel-cdr) wrote :
Revision history for this message
Emil Renner Berthing (esmil) wrote :

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.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.