Message ID | 20200318143047.2335-17-frankja@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | s390x: Protected Virtualization support | expand |
On Wed, 18 Mar 2020 10:30:47 -0400 Janosch Frank <frankja@linux.ibm.com> wrote: > From: Christian Borntraeger <borntraeger@de.ibm.com> > > The unpack facility is an indication that diagnose 308 subcodes 8-10 > are available to the guest. That means, that the guest can put itself > into protected mode. > > Once it is in protected mode, the hardware stops any attempt of VM > introspection by the hypervisor. > > Some features are currently not supported in protected mode: > * vfio devices > * Migration > * Huge page backings > > Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> > Reviewed-by: David Hildenbrand <david@redhat.com> > Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> > --- > target/s390x/gen-features.c | 1 + > target/s390x/kvm.c | 8 ++++++++ > 2 files changed, 9 insertions(+) Reviewed-by: Cornelia Huck <cohuck@redhat.com>
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c index 6278845b12b8dee8..8ddeebc54419a3e2 100644 --- a/target/s390x/gen-features.c +++ b/target/s390x/gen-features.c @@ -562,6 +562,7 @@ static uint16_t full_GEN15_GA1[] = { S390_FEAT_GROUP_MSA_EXT_9, S390_FEAT_GROUP_MSA_EXT_9_PCKMO, S390_FEAT_ETOKEN, + S390_FEAT_UNPACK, }; /* Default features (in order of release) diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index 6b7819d2c51a111c..3630c15f45a48864 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -2410,6 +2410,14 @@ void kvm_s390_get_host_cpu_model(S390CPUModel *model, Error **errp) clear_bit(S390_FEAT_BPB, model->features); } + /* + * If we have support for protected virtualization, indicate + * the protected virtualization IPL unpack facility. + */ + if (cap_protected) { + set_bit(S390_FEAT_UNPACK, model->features); + } + /* We emulate a zPCI bus and AEN, therefore we don't need HW support */ set_bit(S390_FEAT_ZPCI, model->features); set_bit(S390_FEAT_ADAPTER_EVENT_NOTIFICATION, model->features);