qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] cpus: tcg: fix never exiting loop on unplug


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] cpus: tcg: fix never exiting loop on unplug
Date: Wed, 25 Apr 2018 15:30:39 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0

On 25/04/2018 15:18, Cédric Le Goater wrote:
> Commit 9b0605f9837b ("cpus: tcg: unregister thread with RCU, fix
> exiting of loop on unplug") changed the exit condition of the loop in
> the vCPU thread function but forgot to remove the beginning 'while (1)'
> statement. The resulting code :
> 
>       while (1) {
>       ...
>       } while (!cpu->unplug || cpu_can_run(cpu));
> 
> is a sequence of two distinct two while() loops, the first not exiting
> in case of an unplug event.
> 
> Remove the first while (1) to fix CPU unplug.
> 
> Signed-off-by: Cédric Le Goater <address@hidden>
> ---
>  cpus.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/cpus.c b/cpus.c
> index 38eba8bff334..e1d94038fd0d 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -1648,7 +1648,7 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
>      /* process any pending work */
>      cpu->exit_request = 1;
>  
> -    while (1) {
> +    do {
>          if (cpu_can_run(cpu)) {
>              int r;
>              qemu_mutex_unlock_iothread();
> 

Cc: address@hidden

Queued, thanks.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]