msgsync

Message Synchronize

msgsync

Provides an ordering function for stores relative to data accesses by other threads after a Directed Ultravisor Doorbell or Directed Hypervisor Doorbell interrupt.

Details

In conjunction with the Synchronize and msgsndu or msgsnd instructions, msgsync provides an ordering function for stores performed with respect to the thread executing the Synchronize and msgsndu or msgsnd instructions, relative to data accesses by other threads that are performed after a Directed Ultravisor Doorbell or Directed Hypervisor Doorbell interrupt.

Pseudocode Operation

# No pseudocode defined; hardware message synchronization barrier.

Programming Note

When used in conjunction with msgsndu or msgsnd, Synchronize with L = 0 or 2 is executed on the thread that will execute the msgsndu or msgsnd, and msgsync is executed on another thread – typically the thread that is the target of the msgsndu or msgsnd, but possibly any other thread (partly because the software that services the Directed Ultravisor Doorbell or Directed Hypervisor Doorbell interrupt may ultimately run on a thread other than that which received the exception). The Synchronize precedes the msgsndu or msgsnd; the msgsync is executed after the Directed Ultravisor Doorbell or Directed Hypervisor Doorbell interrupt occurs, and precedes all instructions that need to 'see' the values stored by the stores that are in set A of the memory barrier created by the Synchronize.

Example

msgsync

Encoding

Binary Layout
31
0
/
6
/
30
/
31
894
/
 
Format X-form
Opcode 0x7C0006FE
Extension Privileged

Operands