diff mbox

[12/16] cpus-common: remove redundant call to exclusive_idle()

Message ID 1474615909-17069-13-git-send-email-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini Sept. 23, 2016, 7:31 a.m. UTC
No need to call exclusive_idle() from cpu_exec_end since it is done
immediately afterwards in cpu_exec_start.  Any exclusive section could
run as soon as cpu_exec_end leaves, because cpu->running is false and the
mutex is not taken, so the call does not add any protection either.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 cpus-common.c              | 1 -
 docs/tcg-exclusive.promela | 1 -
 2 files changed, 2 deletions(-)

Comments

Richard Henderson Sept. 23, 2016, 5:22 p.m. UTC | #1
On 09/23/2016 12:31 AM, Paolo Bonzini wrote:
> No need to call exclusive_idle() from cpu_exec_end since it is done
> immediately afterwards in cpu_exec_start.  Any exclusive section could
> run as soon as cpu_exec_end leaves, because cpu->running is false and the
> mutex is not taken, so the call does not add any protection either.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  cpus-common.c              | 1 -
>  docs/tcg-exclusive.promela | 1 -
>  2 files changed, 2 deletions(-)

Reviewed-by: Richard Henderson <rth@twiddle.net>


r~
Alex Bennée Sept. 26, 2016, 8:25 a.m. UTC | #2
Paolo Bonzini <pbonzini@redhat.com> writes:

> No need to call exclusive_idle() from cpu_exec_end since it is done
> immediately afterwards in cpu_exec_start.  Any exclusive section could
> run as soon as cpu_exec_end leaves, because cpu->running is false and the
> mutex is not taken, so the call does not add any protection either.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

> ---
>  cpus-common.c              | 1 -
>  docs/tcg-exclusive.promela | 1 -
>  2 files changed, 2 deletions(-)
>
> diff --git a/cpus-common.c b/cpus-common.c
> index 115f3d4..80aaf9b 100644
> --- a/cpus-common.c
> +++ b/cpus-common.c
> @@ -221,7 +221,6 @@ void cpu_exec_end(CPUState *cpu)
>              qemu_cond_signal(&exclusive_cond);
>          }
>      }
> -    exclusive_idle();
>      qemu_mutex_unlock(&qemu_cpu_list_lock);
>  }
>
> diff --git a/docs/tcg-exclusive.promela b/docs/tcg-exclusive.promela
> index 360edcd..9e7d9e3 100644
> --- a/docs/tcg-exclusive.promela
> +++ b/docs/tcg-exclusive.promela
> @@ -123,7 +123,6 @@ byte has_waiter[N_CPUS];
>          }                                                                    \
>          :: else -> skip;                                                     \
>      fi;                                                                      \
> -    exclusive_idle();                                                        \
>      MUTEX_UNLOCK(mutex);
>
>  // Promela processes


--
Alex Bennée
diff mbox

Patch

diff --git a/cpus-common.c b/cpus-common.c
index 115f3d4..80aaf9b 100644
--- a/cpus-common.c
+++ b/cpus-common.c
@@ -221,7 +221,6 @@  void cpu_exec_end(CPUState *cpu)
             qemu_cond_signal(&exclusive_cond);
         }
     }
-    exclusive_idle();
     qemu_mutex_unlock(&qemu_cpu_list_lock);
 }
 
diff --git a/docs/tcg-exclusive.promela b/docs/tcg-exclusive.promela
index 360edcd..9e7d9e3 100644
--- a/docs/tcg-exclusive.promela
+++ b/docs/tcg-exclusive.promela
@@ -123,7 +123,6 @@  byte has_waiter[N_CPUS];
         }                                                                    \
         :: else -> skip;                                                     \
     fi;                                                                      \
-    exclusive_idle();                                                        \
     MUTEX_UNLOCK(mutex);
 
 // Promela processes