diff options
author | Philippe Mathieu-Daudé <philmd@linaro.org> | 2023-12-08 12:35:27 +0100 |
---|---|---|
committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2024-01-19 12:28:59 +0100 |
commit | 72c603f82f2267c93fadf37aac2412d1b19645d2 (patch) | |
tree | 1da8a28e9bb0e68aa529ac1373dc4f620e5570ff | |
parent | 24128132866d8486e8f0b4bdf647ced03b5ef522 (diff) | |
download | qemu-72c603f82f2267c93fadf37aac2412d1b19645d2.zip qemu-72c603f82f2267c93fadf37aac2412d1b19645d2.tar.gz qemu-72c603f82f2267c93fadf37aac2412d1b19645d2.tar.bz2 |
util/async: Only call icount_notify_exit() if icount is enabled
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20231208113529.74067-6-philmd@linaro.org>
-rw-r--r-- | accel/tcg/icount-common.c | 4 | ||||
-rw-r--r-- | stubs/icount.c | 2 | ||||
-rw-r--r-- | util/async.c | 16 |
3 files changed, 13 insertions, 9 deletions
diff --git a/accel/tcg/icount-common.c b/accel/tcg/icount-common.c index f0f8fc7..a4a747d 100644 --- a/accel/tcg/icount-common.c +++ b/accel/tcg/icount-common.c @@ -495,7 +495,9 @@ bool icount_configure(QemuOpts *opts, Error **errp) void icount_notify_exit(void) { - if (icount_enabled() && current_cpu) { + assert(icount_enabled()); + + if (current_cpu) { qemu_cpu_kick(current_cpu); qemu_clock_notify(QEMU_CLOCK_VIRTUAL); } diff --git a/stubs/icount.c b/stubs/icount.c index c2c10df..1eb35b1 100644 --- a/stubs/icount.c +++ b/stubs/icount.c @@ -45,7 +45,7 @@ void icount_account_warp_timer(void) { abort(); } - void icount_notify_exit(void) { + abort(); } diff --git a/util/async.c b/util/async.c index 36a8e76..0467890 100644 --- a/util/async.c +++ b/util/async.c @@ -94,13 +94,15 @@ static void aio_bh_enqueue(QEMUBH *bh, unsigned new_flags) } aio_notify(ctx); - /* - * Workaround for record/replay. - * vCPU execution should be suspended when new BH is set. - * This is needed to avoid guest timeouts caused - * by the long cycles of the execution. - */ - icount_notify_exit(); + if (unlikely(icount_enabled())) { + /* + * Workaround for record/replay. + * vCPU execution should be suspended when new BH is set. + * This is needed to avoid guest timeouts caused + * by the long cycles of the execution. + */ + icount_notify_exit(); + } } /* Only called from aio_bh_poll() and aio_ctx_finalize() */ |