cryptospore / rpms / qemu-kvm

Forked from rpms/qemu-kvm 2 years ago
Clone

Blame SOURCES/0018-BZ1653590-Require-at-least-64kiB-pages-for-downstrea.patch

28f2e1
From 92bb62c47eab021f8dabecd09b5fbc1706e6a29c Mon Sep 17 00:00:00 2001
22c213
From: David Gibson <dgibson@redhat.com>
22c213
Date: Wed, 6 Feb 2019 03:58:56 +0000
22c213
Subject: BZ1653590: Require at least 64kiB pages for downstream guests & hosts
22c213
22c213
RH-Author: David Gibson <dgibson@redhat.com>
22c213
Message-id: <20190206035856.19058-1-dgibson@redhat.com>
22c213
Patchwork-id: 84246
22c213
O-Subject: [RHELAV-8.0/rhel qemu-kvm PATCH] BZ1653590: Require at least 64kiB pages for downstream guests & hosts
22c213
Bugzilla: 1653590
22c213
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
22c213
RH-Acked-by: Serhii Popovych <spopovyc@redhat.com>
22c213
RH-Acked-by: Thomas Huth <thuth@redhat.com>
22c213
22c213
Most current POWER guests require 64kiB page support, so that's the default
22c213
for the cap-hpt-max-pagesize option in qemu which limits available guest
22c213
page sizes.  We warn if the value is set smaller than that, but don't
22c213
outright fail upstream, because we need to allow for the possibility of
22c213
guest (and/or host) kernels configured for 4kiB page sizes.
22c213
22c213
Downstream, however, we simply don't support 4kiB pagesize configured
22c213
kernels in guest or host, so we can have qemu simply error out in this
22c213
situation.
22c213
22c213
Testing: Attempted to start a guest with cap-hpt-max-page-size=4k and verified
22c213
         it failed immediately with a qemu error
22c213
22c213
Signed-off-by: David Gibson <dgibson@redhat.com>
22c213
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
22c213
---
22c213
 hw/ppc/spapr_caps.c | 7 +++++++
22c213
 1 file changed, 7 insertions(+)
22c213
22c213
diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c
febaa2
index ed7c077a0d..48a8efe678 100644
22c213
--- a/hw/ppc/spapr_caps.c
22c213
+++ b/hw/ppc/spapr_caps.c
febaa2
@@ -332,12 +332,19 @@ bool spapr_check_pagesize(SpaprMachineState *spapr, hwaddr pagesize,
22c213
 static void cap_hpt_maxpagesize_apply(SpaprMachineState *spapr,
22c213
                                       uint8_t val, Error **errp)
22c213
 {
22c213
+#if 0 /* disabled for RHEL */
22c213
     if (val < 12) {
22c213
         error_setg(errp, "Require at least 4kiB hpt-max-page-size");
22c213
         return;
22c213
     } else if (val < 16) {
22c213
         warn_report("Many guests require at least 64kiB hpt-max-page-size");
22c213
     }
22c213
+#else /* Only page sizes >=64kiB supported for RHEL */
22c213
+    if (val < 16) {
22c213
+        error_setg(errp, "Require at least 64kiB hpt-max-page-size");
22c213
+        return;
22c213
+    }
22c213
+#endif
22c213
 
22c213
     spapr_check_pagesize(spapr, qemu_minrampagesize(), errp);
22c213
 }
22c213
-- 
28f2e1
2.27.0
22c213