diff options
author | Pierrick Bouvier <pierrick.bouvier@linaro.org> | 2025-04-10 15:55:49 -0700 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2025-04-14 11:03:16 -0400 |
commit | fa3f3a33f3c4aba56138b1ca78c81a3e15f91971 (patch) | |
tree | f74932f3aaef955f3527faba01126c6d8214219f /hw/omap_clk.c | |
parent | 100e8e2b383f1afce447274e1feb949166ad9c50 (diff) | |
download | qemu-fa3f3a33f3c4aba56138b1ca78c81a3e15f91971.zip qemu-fa3f3a33f3c4aba56138b1ca78c81a3e15f91971.tar.gz qemu-fa3f3a33f3c4aba56138b1ca78c81a3e15f91971.tar.bz2 |
system/main: transfer replay mutex ownership from main thread to main loop thread
On MacOS, UI event loop has to be ran in the main thread of a process.
Because of that restriction, on this platform, qemu main event loop is
ran on another thread [1].
This breaks record/replay feature, which expects thread running qemu_init
to initialize hold this lock, breaking associated functional tests on
MacOS.
Thus, as a generalization, and similar to how BQL is handled, we release
it after init, and reacquire the lock before entering main event loop,
avoiding a special case if a separate thread is used.
Tested on MacOS with:
$ meson test -C build --setup thorough --print-errorlogs \
func-x86_64-x86_64_replay func-arm-arm_replay func-aarch64-aarch64_replay
$ ./build/qemu-system-x86_64 -nographic -icount shift=auto,rr=record,rrfile=replay.log
$ ./build/qemu-system-x86_64 -nographic -icount shift=auto,rr=replay,rrfile=replay.log
[1] https://gitlab.com/qemu-project/qemu/-/commit/f5ab12caba4f1656479c1feb5248beac1c833243
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/2907
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20250410225550.46807-2-pierrick.bouvier@linaro.org>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'hw/omap_clk.c')
0 files changed, 0 insertions, 0 deletions