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