Blame SOURCES/kvm-s390x-cpumodel-default-enable-bpb-and-ppa15-for-z196.patch

26ba25
From 9269bf16c4ca06496840473ec842dfcbc2d9020f Mon Sep 17 00:00:00 2001
26ba25
From: Cornelia Huck <cohuck@redhat.com>
26ba25
Date: Tue, 7 Aug 2018 09:05:54 +0000
26ba25
Subject: [PATCH 19/21] s390x/cpumodel: default enable bpb and ppa15 for z196
26ba25
 and later
26ba25
26ba25
RH-Author: Cornelia Huck <cohuck@redhat.com>
26ba25
Message-id: <20180807100554.29643-3-cohuck@redhat.com>
26ba25
Patchwork-id: 81660
26ba25
O-Subject: [qemu-kvm RHEL8/virt212 PATCH 2/2] s390x/cpumodel: default enable bpb and ppa15 for z196 and later
26ba25
Bugzilla: 1595718
26ba25
RH-Acked-by: David Hildenbrand <david@redhat.com>
26ba25
RH-Acked-by: Thomas Huth <thuth@redhat.com>
26ba25
RH-Acked-by: Jens Freimann <jfreiman@redhat.com>
26ba25
26ba25
Upstream: downstream version of 8727315111 ("s390x/cpumodel: default
26ba25
	  enable bpb and ppa15 for z196 and later"); downstream does
26ba25
	  not have the upstream machine types, instead we need to
26ba25
	  turn off the bits for the RHEL 7.5 machine
26ba25
26ba25
Most systems and host kernels provide the necessary building blocks for
26ba25
bpb and ppa15. We can reverse the logic and default enable those
26ba25
features, while still allowing to disable it via cpu model.
26ba25
26ba25
So let us add bpb and ppa15 to z196 and later default CPU model for the
26ba25
qemu rhel7.6.0 machine. (like -cpu z13).  Older machine types (i.e.
26ba25
s390-ccw-virtio-rhel7.5.0) will retain the old value and not provide those
26ba25
bits in the default model.
26ba25
26ba25
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
26ba25
---
26ba25
 hw/s390x/s390-virtio-ccw.c  | 4 ++++
26ba25
 target/s390x/gen-features.c | 2 ++
26ba25
 2 files changed, 6 insertions(+)
26ba25
26ba25
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
26ba25
index 64e2a3b..bf039a1 100644
26ba25
--- a/hw/s390x/s390-virtio-ccw.c
26ba25
+++ b/hw/s390x/s390-virtio-ccw.c
26ba25
@@ -912,6 +912,10 @@ static void ccw_machine_rhel750_instance_options(MachineState *machine)
26ba25
     /* before 2.12 we emulated the very first z900, and RHEL 7.5 is
26ba25
        based on 2.10 */
26ba25
     s390_set_qemu_cpu_model(0x2064, 7, 1, qemu_cpu_feat);
26ba25
+
26ba25
+    /* bpb and ppa15 were only in the full model in RHEL 7.5 */
26ba25
+    s390_cpudef_featoff_greater(11, 1, S390_FEAT_PPA15);
26ba25
+    s390_cpudef_featoff_greater(11, 1, S390_FEAT_BPB);
26ba25
 }
26ba25
 
26ba25
 static void ccw_machine_rhel750_class_options(MachineClass *mc)
26ba25
diff --git a/target/s390x/gen-features.c b/target/s390x/gen-features.c
26ba25
index 0cdbc15..6626b6f 100644
26ba25
--- a/target/s390x/gen-features.c
26ba25
+++ b/target/s390x/gen-features.c
26ba25
@@ -512,6 +512,8 @@ static uint16_t default_GEN11_GA1[] = {
26ba25
     S390_FEAT_IPTE_RANGE,
26ba25
     S390_FEAT_ACCESS_EXCEPTION_FS_INDICATION,
26ba25
     S390_FEAT_GROUP_MSA_EXT_4,
26ba25
+    S390_FEAT_PPA15,
26ba25
+    S390_FEAT_BPB,
26ba25
 };
26ba25
 
26ba25
 #define default_GEN11_GA2 EmptyFeat
26ba25
-- 
26ba25
1.8.3.1
26ba25