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);


Reply via email to