Le 16/05/2023 à 12:20, Afonso Bordado a écrit :
Hey Laurent,
I was having some issues reproducing this bug, but that looks like a likely
explanation!
Should I resubmit the patch with that diff applied?
No, I'm going to update it.
Thanks,
Laurent
Thanks!
On 5/16/2023 10:11 AM, Laurent Vivier wrote:
Le 15/05/2023 à 17:50, Laurent Vivier a écrit :
Le 15/05/2023 à 15:55, Richard Henderson a écrit :
On 5/15/23 01:31, Laurent Vivier wrote:
The following changes since commit 7c18f2d663521f1b31b821a13358ce38075eaf7d:
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2023-04-29
23:07:17 +0100)
are available in the Git repository at:
https://github.com/vivier/qemu.git tags/linux-user-for-8.1-pull-request
for you to fetch changes up to 015ebc4aaa47612514a5c846b9db0d76b653b75f:
linux-user: fix getgroups/setgroups allocations (2023-05-14 18:08:04 +0200)
----------------------------------------------------------------
linux-user pull request 20230512-v2
add open_tree(), move_mount()
add /proc/cpuinfo for riscv
fixes and cleanup
The new test in patch 1 fails:
https://gitlab.com/qemu-project/qemu/-/jobs/4285710689#L4825
TEST cpuinfo on riscv64
cpuinfo: /builds/qemu-project/qemu/tests/tcg/riscv64/cpuinfo.c:20: main: Assertion
`strcmp(buffer, "isa\t\t: rv64imafdc_zicsr_zifencei\n") == 0' failed.
timeout: the monitored command dumped core
Aborted
make[1]: *** [Makefile:174: run-cpuinfo] Error 134
make: *** [/builds/qemu-project/qemu/tests/Makefile.include:56:
run-tcg-tests-riscv64-linux-user] Error 2
make: *** Waiting for unfinished jobs....
r~
Strange, it worked for me:
https://gitlab.com/laurent_vivier/qemu/-/jobs/4281774977#L4844
I think if the host has more than 12 processors there is a buffer overflow.
something like this can mitigate avoid the problem:
diff --git a/tests/tcg/riscv64/cpuinfo.c b/tests/tcg/riscv64/cpuinfo.c
index 296abd0a8cf9..5c2b79022e9c 100644
--- a/tests/tcg/riscv64/cpuinfo.c
+++ b/tests/tcg/riscv64/cpuinfo.c
@@ -22,6 +22,7 @@ int main(void)
assert(strcmp(buffer, "mmu\t\t: sv48\n") == 0);
} else if (strstr(buffer, "uarch") != NULL) {
assert(strcmp(buffer, "uarch\t\t: qemu\n") == 0);
+ break;
}
}
Thanks,
Laurent