On Fri, 29 Aug 2025 17:31:15 +0200 Paolo Bonzini <[email protected]> wrote:
> Whenever user-mode emulation needs to go all the way out of the cpu > exec loop, it uses cpu_exit(), which already sets cpu->exit_request. > > Therefore, there is no need for tcg_kick_vcpu_thread() to set > cpu->exit_request again outside system emulation. > > Signed-off-by: Paolo Bonzini <[email protected]> Reviewed-by: Igor Mammedov <[email protected]> > --- > accel/tcg/cpu-exec.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c > index ad94f96b252..7c20d9db122 100644 > --- a/accel/tcg/cpu-exec.c > +++ b/accel/tcg/cpu-exec.c > @@ -751,6 +751,7 @@ static inline bool cpu_handle_exception(CPUState *cpu, > int *ret) > > void tcg_kick_vcpu_thread(CPUState *cpu) > { > +#ifndef CONFIG_USER_ONLY > /* > * Ensure cpu_exec will see the reason why the exit request was set. > * FIXME: this is not always needed. Other accelerators instead > @@ -758,6 +759,7 @@ void tcg_kick_vcpu_thread(CPUState *cpu) > * CPU thread; see kvm_arch_pre_run() for example. > */ > qatomic_store_release(&cpu->exit_request, true); > +#endif > > /* Ensure cpu_exec will see the exit request after TCG has exited. */ > qatomic_store_release(&cpu->neg.icount_decr.u16.high, -1);
