All of lore.kernel.org
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: qemu-devel@nongnu.org
Cc: borntraeger@de.ibm.com, qemu-s390x@nongnu.org, cohuck@redhat.com,
	david@redhat.com
Subject: [PATCH v11 05/16] s390x: protvirt: Inhibit balloon when switching to protected mode
Date: Thu, 19 Mar 2020 09:19:10 -0400	[thread overview]
Message-ID: <20200319131921.2367-6-frankja@linux.ibm.com> (raw)
In-Reply-To: <20200319131921.2367-1-frankja@linux.ibm.com>

Ballooning in protected VMs can only be done when the guest shares the
pages it gives to the host. If pages are not shared, the integrity
checks will fail once those pages have been altered and are given back
to the guest.

As we currently do not yet have a solution for this we will continue
like this:

1. We block ballooning now in QEMU (with this patch).

2. Later we will provide a change to virtio that removes the blocker
and adds VIRTIO_F_IOMMU_PLATFORM automatically by QEMU when doing the
protvirt switch. This is OK, as the balloon driver in Linux (the only
supported guest) will refuse to work with the IOMMU_PLATFORM feature
bit set.

3. Later, we can fix the guest balloon driver to accept the IOMMU
feature bit and correctly exercise sharing and unsharing of balloon
pages.

Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
---
 hw/s390x/s390-virtio-ccw.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 8013c82236a36724..3cf19c99f3468b7d 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -42,6 +42,7 @@
 #include "hw/qdev-properties.h"
 #include "hw/s390x/tod.h"
 #include "sysemu/sysemu.h"
+#include "sysemu/balloon.h"
 #include "hw/s390x/pv.h"
 #include <linux/kvm.h>
 #include "migration/blocker.h"
@@ -328,6 +329,7 @@ static void s390_machine_unprotect(S390CcwMachineState *ms)
     ms->pv = false;
     migrate_del_blocker(pv_mig_blocker);
     error_free_or_abort(&pv_mig_blocker);
+    qemu_balloon_inhibit(false);
 }
 
 static int s390_machine_protect(S390CcwMachineState *ms)
@@ -335,10 +337,18 @@ static int s390_machine_protect(S390CcwMachineState *ms)
     Error *local_err = NULL;
     int rc;
 
+   /*
+    * Ballooning on protected VMs needs support in the guest for
+    * sharing and unsharing balloon pages. Block ballooning for
+    * now, until we have a solution to make at least Linux guests
+    * either support it or fail gracefully.
+    */
+    qemu_balloon_inhibit(true);
     error_setg(&pv_mig_blocker,
                "protected VMs are currently not migrateable.");
     rc = migrate_add_blocker(pv_mig_blocker, &local_err);
     if (rc) {
+        qemu_balloon_inhibit(false);
         error_report_err(local_err);
         error_free_or_abort(&pv_mig_blocker);
         return rc;
@@ -347,6 +357,7 @@ static int s390_machine_protect(S390CcwMachineState *ms)
     /* Create SE VM */
     rc = s390_pv_vm_enable();
     if (rc) {
+        qemu_balloon_inhibit(false);
         error_report_err(local_err);
         migrate_del_blocker(pv_mig_blocker);
         error_free_or_abort(&pv_mig_blocker);
-- 
2.25.1



  parent reply	other threads:[~2020-03-19 13:22 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-19 13:19 [PATCH v11 00/16] s390x: Protected Virtualization support Janosch Frank
2020-03-19 13:19 ` [PATCH v11 01/16] s390x: Move diagnose 308 subcodes and rcs into ipl.h Janosch Frank
2020-03-19 13:28   ` David Hildenbrand
2020-03-19 13:19 ` [PATCH v11 02/16] Sync pv Janosch Frank
2020-03-19 13:19 ` [PATCH v11 03/16] s390x: protvirt: Support unpack facility Janosch Frank
2020-03-20 21:10   ` Bruce Rogers
2020-03-23  7:15     ` Christian Borntraeger
2020-03-23  7:37       ` Christian Borntraeger
2020-03-23  8:29         ` Janosch Frank
2020-03-23  8:36   ` [PATCH v12] " Janosch Frank
2020-04-29 13:01     ` Cornelia Huck
2020-03-19 13:19 ` [PATCH v11 04/16] s390x: protvirt: Add migration blocker Janosch Frank
2020-03-19 13:19 ` Janosch Frank [this message]
2020-03-19 13:19 ` [PATCH v11 06/16] s390x: protvirt: KVM intercept changes Janosch Frank
2020-03-19 13:19 ` [PATCH v11 07/16] s390x: Add SIDA memory ops Janosch Frank
2020-03-19 13:19 ` [PATCH v11 08/16] s390x: protvirt: Move STSI data over SIDAD Janosch Frank
2020-03-19 13:19 ` [PATCH v11 09/16] s390x: protvirt: SCLP interpretation Janosch Frank
2020-03-19 14:50   ` Christian Borntraeger
2020-03-19 13:19 ` [PATCH v11 10/16] s390x: protvirt: Set guest IPL PSW Janosch Frank
2020-03-19 13:19 ` [PATCH v11 11/16] s390x: protvirt: Move diag 308 data over SIDA Janosch Frank
2020-03-19 13:19 ` [PATCH v11 12/16] s390x: protvirt: Disable address checks for PV guest IO emulation Janosch Frank
2020-03-19 13:19 ` [PATCH v11 13/16] s390x: protvirt: Move IO control structures over SIDA Janosch Frank
2020-03-19 13:19 ` [PATCH v11 14/16] s390x: protvirt: Handle SIGP store status correctly Janosch Frank
2020-03-19 13:19 ` [PATCH v11 15/16] docs: system: Add protvirt docs Janosch Frank
2020-03-19 13:19 ` [PATCH v11 16/16] s390x: Add unpack facility feature to GA1 Janosch Frank
2020-03-23 17:13 ` [PATCH v11 00/16] s390x: Protected Virtualization support Cornelia Huck
2020-03-23 19:39 ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200319131921.2367-6-frankja@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.