[PATCH 0/2] ppc: add support for Directed Privileged Doorbell (non-hypervisor)

Cédric Le Goater posted 2 patches 4 years, 3 months ago
Test docker-mingw@fedora passed
Test checkpatch passed
Test docker-quick@centos7 passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200109163346.23062-1-clg@kaod.org
Maintainers: David Gibson <david@gibson.dropbear.id.au>
There is a newer version of this series
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(-)
[PATCH 0/2] ppc: add support for Directed Privileged Doorbell (non-hypervisor)
Posted by Cédric Le Goater 4 years, 3 months ago
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