diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2023-03-03 11:07:04 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2023-04-29 14:19:01 +0200 |
commit | 42abcc584174166342297421209932a87bdb85f1 (patch) | |
tree | 229e9f884e4bb48e74b2bfdbb99f4e9ded19280b /cpus-common.c | |
parent | d66ba6dc1cce914673bd8a89fca30a7715ea70d1 (diff) |
cpus-common: stop using mb_set/mb_read
Use a store-release at the end of the work item, and a load-acquire when
waiting for the item to be completed. This is the standard message passing
pattern and is both enough and clearer than mb_read/mb_set.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'cpus-common.c')
-rw-r--r-- | cpus-common.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cpus-common.c b/cpus-common.c index b0047e456f..a53716deb4 100644 --- a/cpus-common.c +++ b/cpus-common.c @@ -157,7 +157,7 @@ void do_run_on_cpu(CPUState *cpu, run_on_cpu_func func, run_on_cpu_data data, wi.exclusive = false; queue_work_on_cpu(cpu, &wi); - while (!qatomic_mb_read(&wi.done)) { + while (!qatomic_load_acquire(&wi.done)) { CPUState *self_cpu = current_cpu; qemu_cond_wait(&qemu_work_cond, mutex); @@ -363,7 +363,7 @@ void process_queued_cpu_work(CPUState *cpu) if (wi->free) { g_free(wi); } else { - qatomic_mb_set(&wi->done, true); + qatomic_store_release(&wi->done, true); } } qemu_mutex_unlock(&cpu->work_mutex); |