On Mon, Jan 20, 2020 at 11:49:33AM +0100, Cédric Le Goater wrote: > Hello, > > The Processor Control facility for 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.
Applied to ppc-for-5.0, thanks. > > Thanks, > > C. > > Changes since v1: > > - removed DBELL_TIRTAG_MASK and simplified helpers as QEMU TCG > doesn't support more than on thread per core > - simplified book3s_dbell2irq() and renamed it to dbell_type_server() > - replaced mask LOG_GUEST_ERROR by CPU_LOG_INT to track HV Facility > errors > > 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 | 6 +++ > target/ppc/helper.h | 4 ++ > target/ppc/excp_helper.c | 79 ++++++++++++++++++++++++++------- > target/ppc/misc_helper.c | 63 ++++++++++++++++++++++++++ > target/ppc/translate.c | 26 +++++++++++ > target/ppc/translate_init.inc.c | 20 +++++++-- > 6 files changed, 178 insertions(+), 20 deletions(-) > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature