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
