RFR: 8352730: RISC-V: Disable tests in qemu-user [v3]
Robbin Ehn
rehn at openjdk.org
Thu Apr 10 07:08:39 UTC 2025
On Thu, 10 Apr 2025 02:13:46 GMT, Fei Yang <fyang at openjdk.org> wrote:
> > qemu-user, "uarch: qemu" in cpuinfo: `[0.084s][info ][os,cpu] CPU: total 28 (initial active 28) qemu rv64 rvi rvm rva rvf rvd rvc rvv zba zbb zbs zfh zfhmin zvbc zvfh zicond` Hence we know this is qemu-user (only qemu-user sets uarch to qemu on riscv).
> > `/proc/cpuinfo` do not contain uarch: [0.053s][info ][os,cpu] CPU: total 8 (initial active 8) rv64 rvi rvm rva rvf rvd rvc zba zbb zbs zfh zfhmin zvfh zicond We have no clue if this is emulated or on real hardware, tests will be executed.
> > Tests are only excluded if we know it's qemu-user.
>
> > qemu-user, "uarch: qemu" in cpuinfo: `[0.084s][info ][os,cpu] CPU: total 28 (initial active 28) qemu rv64 rvi rvm rva rvf rvd rvc rvv zba zbb zbs zfh zfhmin zvbc zvfh zicond` Hence we know this is qemu-user (only qemu-user sets uarch to qemu on riscv).
> > `/proc/cpuinfo` do not contain uarch: [0.053s][info ][os,cpu] CPU: total 8 (initial active 8) rv64 rvi rvm rva rvf rvd rvc zba zbb zbs zfh zfhmin zvfh zicond We have no clue if this is emulated or on real hardware, tests will be executed.
> > Tests are only excluded if we know it's qemu-user.
>
> Sorry for not being clear enough. Yes, that's how it works with qemu-user for riscv. Just wondering if it makes sense to extend this to other CPU platforms. There are two cases.
>
> * Case 1: The tests are excluded as expected if we parses "qemu" in cpuinfo with qemu-user for another CPU, which is simiar with qemu-user for riscv. But I am not sure if there is one for now.
> * Case 2: The tests are NOT excluded as there's no "qemu" in cpuinfo with qemu-user for another CPU. Then we still got test failures as before. But we are not causing any more regressions. I may consider that as a qemu-user issue for this CPU. And it could be fixed on the qemu-user side if it really helps people.
>
> Maybe I am demanding too much about qemu-user. What do you think?
There is additional step:
The linux cpu vm_version also need to parse the /proc/cpuinfo and add that to the JVM cpu string.
Right now only rv64 and aarch64 opens that file AFIACT.
And in qemu-user the only JVM supported platforms adding qemu to cpuinfo is s390 and rv64.
I'll ask qemu folks and get a feel for if I can upstream some changes addressing this.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24229#issuecomment-2791764329
More information about the core-libs-dev
mailing list