Peter Maydell <peter.mayd...@linaro.org> writes:
> On Tue, 20 Jun 2023 at 17:56, Peter Maydell <peter.mayd...@linaro.org> wrote: >> >> $ make -C build/x86 check-tcg >> make: Entering directory >> '/mnt/nvmedisk/linaro/qemu-from-laptop/qemu/build/x86' >> [...] >> TEST munmap-pthread on arm >> ** >> ERROR:../../plugins/core.c:221:qemu_plugin_vcpu_init_hook: assertion >> failed: (success) >> ** >> ERROR:../../accel/tcg/cpu-exec.c:1024:cpu_exec_setjmp: assertion >> failed: (cpu == current_cpu) > > git bisect blames commit d7ee93e2435970: > > cputlb: Restrict SavedIOTLB to system emulation > > I think that commit is not correct, because it means that > the size of 'struct CPUState' and also the offset of fields > like 'cpu_index' will be different for files which are > compile-per-target-for-usermode and files which are > compile-once-only. The assert happens here because the > code which sets up cpu_index is build-once, but the code > in qemu_plugin_vcpu_init_hook() which reads cpu_index is > build-per-target and now they don't agree about where in > the struct the field is... Hmm two things from that imply: - I suspect the plugin core stuff could be build once (or maybe twice, system and user) - we need to have some guard rails somehow to make sure things don't go out of sync > > Reverting the commit fixes the bug. > > thanks > -- PMM -- Alex Bennée Virtualisation Tech Lead @ Linaro