On Tue, 25 Mar 2025 14:19:55 GMT, Robbin Ehn <r...@openjdk.org> wrote:
> Hi, for you to consider. > > These tests constantly fails in qemu-user. > Either the require host to be same arch or they are very very slow in > emulation. > E.g. "ptrace(PTRACE_ATTACH, ..) failed for 405157: Function not implemented'" > for SA tests. > This is the initial set of tests, there are many more, but I need to do some > more verification for those. > > From bug: >> qemu-user/rv64 sets uarch to "qemu" in /proc/cpuinfo (qemu-system do not do >> that). >> We add this uarch to CPU feature string. >> This means we can use jtreg 'require' with cpu string to filter out tests in >> qemu-user. > > Relevant qemu code: > https://github.com/qemu/qemu/blob/170825d14d88a1ce7fae98d5a928480f2f329b22/linux-user/riscv/target_proc.h#L29 > > Relevant hotspot code: > https://github.com/openjdk/jdk/blob/fa0b18bfde38ee2ffbab33a9eaac547fe8aa3c7c/src/hotspot/os_cpu/linux_riscv/vm_version_linux_riscv.cpp#L250 > > Tested that the require only filters out tests in qemu+riscv64. > > Thanks! > > /Robbin Hi, This is interesting! But why not use qemu-system instead then? Although a bit slower than qemu-user, this functions well like a real linux system. When testing new riscv features without hardware implementations, I always use qemu-system with a big timeout factor, like: `make test TEST=hotspot:tier1 JTREG="TIMEOUT_FACTOR=24"`. This seems to work on my Xeon Gold 6278C X86 server. It takes about one day or two to build and run `hotspot:tier1`. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24229#issuecomment-2753071048