77c23f
From ab670456375f0d9b9b2d219fd497d04ec0009e1d Mon Sep 17 00:00:00 2001
77c23f
From: Thomas Huth <thuth@redhat.com>
77c23f
Date: Fri, 29 May 2020 05:54:16 -0400
77c23f
Subject: [PATCH 34/42] s390x: Add unpack facility feature to GA1
77c23f
77c23f
RH-Author: Thomas Huth <thuth@redhat.com>
77c23f
Message-id: <20200529055420.16855-35-thuth@redhat.com>
77c23f
Patchwork-id: 97052
77c23f
O-Subject: [RHEL-8.3.0 qemu-kvm PATCH v2 34/38] s390x: Add unpack facility feature to GA1
77c23f
Bugzilla: 1828317
77c23f
RH-Acked-by: Claudio Imbrenda <cimbrend@redhat.com>
77c23f
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
77c23f
RH-Acked-by: David Hildenbrand <david@redhat.com>
77c23f
77c23f
From: Christian Borntraeger <borntraeger@de.ibm.com>
77c23f
77c23f
The unpack facility is an indication that diagnose 308 subcodes 8-10
77c23f
are available to the guest. That means, that the guest can put itself
77c23f
into protected mode.
77c23f
77c23f
Once it is in protected mode, the hardware stops any attempt of VM
77c23f
introspection by the hypervisor.
77c23f
77c23f
Some features are currently not supported in protected mode:
77c23f
     * vfio devices
77c23f
     * Migration
77c23f
     * Huge page backings
77c23f
77c23f
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
77c23f
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
77c23f
Reviewed-by: David Hildenbrand <david@redhat.com>
77c23f
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
77c23f
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
77c23f
Message-Id: <20200319131921.2367-17-frankja@linux.ibm.com>
77c23f
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
77c23f
(cherry picked from commit 572c0826615737f1c095b1b6d9e381ec40f72eb5)
77c23f
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
77c23f
---
77c23f
 target/s390x/gen-features.c | 1 +
77c23f
 target/s390x/kvm.c          | 8 ++++++++
77c23f
 2 files changed, 9 insertions(+)
77c23f
77c23f
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
77c23f
index 6278845b12..8ddeebc544 100644
77c23f
--- a/target/s390x/gen-features.c
77c23f
+++ b/target/s390x/gen-features.c
77c23f
@@ -562,6 +562,7 @@ static uint16_t full_GEN15_GA1[] = {
77c23f
     S390_FEAT_GROUP_MSA_EXT_9,
77c23f
     S390_FEAT_GROUP_MSA_EXT_9_PCKMO,
77c23f
     S390_FEAT_ETOKEN,
77c23f
+    S390_FEAT_UNPACK,
77c23f
 };
77c23f
 
77c23f
 /* Default features (in order of release)
77c23f
diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c
77c23f
index 56fe60c49c..84d7cadd09 100644
77c23f
--- a/target/s390x/kvm.c
77c23f
+++ b/target/s390x/kvm.c
77c23f
@@ -2407,6 +2407,14 @@ void kvm_s390_get_host_cpu_model(S390CPUModel *model, Error **errp)
77c23f
         clear_bit(S390_FEAT_BPB, model->features);
77c23f
     }
77c23f
 
77c23f
+    /*
77c23f
+     * If we have support for protected virtualization, indicate
77c23f
+     * the protected virtualization IPL unpack facility.
77c23f
+     */
77c23f
+    if (cap_protected) {
77c23f
+        set_bit(S390_FEAT_UNPACK, model->features);
77c23f
+    }
77c23f
+
77c23f
     /* We emulate a zPCI bus and AEN, therefore we don't need HW support */
77c23f
     set_bit(S390_FEAT_ZPCI, model->features);
77c23f
     set_bit(S390_FEAT_ADAPTER_EVENT_NOTIFICATION, model->features);
77c23f
-- 
77c23f
2.27.0
77c23f