Hello, The Processor Control facility POWER8 processors and later provides a mechanism for the hypervisor to send messages to other threads in the system (msgsnd instruction) and cause hypervisor-level exceptions.
Privileged non-hypervisor programs can also send messages (msgsndp instruction) but are restricted to the threads of the same subprocessor and cause privileged-level exceptions. The Directed Privileged Doorbell Exception State (DPDES) register reflects the state of pending privileged-level doorbell exceptions for all threads and can be used to modify that state. If the MSGP facility is not in the HFSCR, a hypervisor facility unavailable exception is generated when these instructions are used or when the DPDES register is accessed by the supervisor. Based on previous work from Suraj Jitindar Singh. I took ownership due to the amount of changes. Thanks, C. Cédric Le Goater (2): target/ppc: Add privileged message send facilities target/ppc: add support for Hypervisor Facility Unavailable Exception target/ppc/cpu.h | 7 +++ target/ppc/helper.h | 4 ++ target/ppc/excp_helper.c | 81 ++++++++++++++++++++++++++++----- target/ppc/misc_helper.c | 63 +++++++++++++++++++++++++ target/ppc/translate.c | 26 +++++++++++ target/ppc/translate_init.inc.c | 20 ++++++-- 6 files changed, 186 insertions(+), 15 deletions(-) -- 2.21.1