Skip to content
  • Paolo Bonzini's avatar
    374293ca
    qemu-thread: use acquire/release to clarify semantics of QemuEvent · 374293ca
    Paolo Bonzini authored
    
    
    Do not use the somewhat mysterious atomic_mb_read/atomic_mb_set,
    instead make sure that the operations on QemuEvent are annotated
    with the desired acquire and release semantics.
    
    In particular, qemu_event_set wakes up the waiting thread, so it must
    be a release from the POV of the waker (compare with qemu_mutex_unlock).
    And it actually needs a full barrier, because that's the only thing that
    provides something like a "load-release".
    
    Use smp_mb_acquire until we have atomic_load_acquire and
    atomic_store_release in atomic.h.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    374293ca
    qemu-thread: use acquire/release to clarify semantics of QemuEvent
    Paolo Bonzini authored
    
    
    Do not use the somewhat mysterious atomic_mb_read/atomic_mb_set,
    instead make sure that the operations on QemuEvent are annotated
    with the desired acquire and release semantics.
    
    In particular, qemu_event_set wakes up the waiting thread, so it must
    be a release from the POV of the waker (compare with qemu_mutex_unlock).
    And it actually needs a full barrier, because that's the only thing that
    provides something like a "load-release".
    
    Use smp_mb_acquire until we have atomic_load_acquire and
    atomic_store_release in atomic.h.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Loading