qemu/include
David Gibson 651615d92d s390: Recognize confidential-guest-support option
At least some s390 cpu models support "Protected Virtualization" (PV),
a mechanism to protect guests from eavesdropping by a compromised
hypervisor.

This is similar in function to other mechanisms like AMD's SEV and
POWER's PEF, which are controlled by the "confidential-guest-support"
machine option.  s390 is a slightly special case, because we already
supported PV, simply by using a CPU model with the required feature
(S390_FEAT_UNPACK).

To integrate this with the option used by other platforms, we
implement the following compromise:

 - When the confidential-guest-support option is set, s390 will
   recognize it, verify that the CPU can support PV (failing if not)
   and set virtio default options necessary for encrypted or protected
   guests, as on other platforms.  i.e. if confidential-guest-support
   is set, we will either create a guest capable of entering PV mode,
   or fail outright.

 - If confidential-guest-support is not set, guests might still be
   able to enter PV mode, if the CPU has the right model.  This may be
   a little surprising, but shouldn't actually be harmful.

To start a guest supporting Protected Virtualization using the new
option use the command line arguments:
    -object s390-pv-guest,id=pv0 -machine confidential-guest-support=pv0

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
2021-02-08 16:57:38 +11:00
..
authz Prefer 'on' | 'off' over 'yes' | 'no' for bool options 2021-01-29 17:07:53 +00:00
block nbd: make nbd_read* return -EIO on error 2021-02-03 08:17:12 -06:00
chardev chardev: do not use machine_init_done 2020-12-15 12:51:51 -05:00
crypto qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
disas disas: Push const down through host disassembly 2021-01-07 05:09:42 -10:00
exec confidential guest support: Introduce cgs "ready" flag 2021-02-08 16:57:38 +11:00
fpu softfloat: Define comparison operations for bfloat16 2020-08-29 19:25:42 -07:00
hw s390: Recognize confidential-guest-support option 2021-02-08 16:57:38 +11:00
io io: Document qmp oob suitability of qio_channel_shutdown and io_shutdown 2021-01-13 10:21:17 +01:00
libdecnumber include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
migration migration: Replace migration's JSON writer by the general one 2020-12-19 10:39:16 +01:00
monitor sev: add sev-inject-launch-secret 2020-12-10 17:33:17 -05:00
net net: checksum: Introduce fine control over checksum type 2021-01-25 17:04:56 +08:00
qapi qapi: Introduce QAPI_LIST_APPEND 2021-01-28 08:08:45 +01:00
qemu confidential guest support: Introduce new confidential guest support class 2021-02-08 16:57:37 +11:00
qom qom: Allow optional sugar props 2021-02-08 16:57:37 +11:00
scsi scsi/utils: Add INVALID_PARAM_VALUE sense code definition 2021-01-22 14:51:35 +01:00
standard-headers Update linux headers to 5.11-rc2 2021-01-21 11:19:45 +01:00
sysemu sev: Add Error ** to sev_kvm_init() 2021-02-08 16:57:38 +11:00
tcg tcg: Restart code generation when we run out of temps 2021-01-24 08:03:27 -10:00
ui display/ui: add a callback to indicate GL state is flushed 2021-02-04 15:58:54 +01:00
user trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
elf.h target-arm queue: 2020-10-29 11:40:04 +00:00
glib-compat.h glib-compat: add g_unix_get_passwd_entry_qemu() 2020-11-02 19:52:08 -06:00
qemu-common.h vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
qemu-io.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
trace-tcg.h