Blame SOURCES/kvm-Use-inhibit-to-prevent-ballooning-without-synchr.patch

7711c0
From c9168134e8e35b61d2b06a1fc34a672a7e9cec85 Mon Sep 17 00:00:00 2001
7711c0
From: Alex Williamson <alex.williamson@redhat.com>
7711c0
Date: Mon, 3 Dec 2018 21:52:53 +0100
7711c0
Subject: [PATCH 19/34] kvm: Use inhibit to prevent ballooning without
7711c0
 synchronous mmu
7711c0
7711c0
RH-Author: Alex Williamson <alex.williamson@redhat.com>
7711c0
Message-id: <154387397293.26945.13950211291934514410.stgit@gimli.home>
7711c0
Patchwork-id: 83228
7711c0
O-Subject: [RHEL-7.7 qemu-kvm-rhev PATCH 2/7] kvm: Use inhibit to prevent ballooning without synchronous mmu
7711c0
Bugzilla: 1619778
7711c0
RH-Acked-by: Peter Xu <peterx@redhat.com>
7711c0
RH-Acked-by: Cornelia Huck <cohuck@redhat.com>
7711c0
RH-Acked-by: Auger Eric <eric.auger@redhat.com>
7711c0
RH-Acked-by: David Hildenbrand <david@redhat.com>
7711c0
7711c0
Bugzilla: 1619778
7711c0
7711c0
Remove KVM specific tests in balloon_page(), instead marking
7711c0
ballooning as inhibited without KVM_CAP_SYNC_MMU support.
7711c0
7711c0
Reviewed-by: David Hildenbrand <david@redhat.com>
7711c0
Reviewed-by: Peter Xu <peterx@redhat.com>
7711c0
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
7711c0
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
7711c0
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
7711c0
(cherry picked from commit f59489423ab79852e98d9b3025b7d99ba8da584f)
7711c0
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
7711c0
---
7711c0
 accel/kvm/kvm-all.c        | 4 ++++
7711c0
 hw/virtio/virtio-balloon.c | 4 +---
7711c0
 2 files changed, 5 insertions(+), 3 deletions(-)
7711c0
7711c0
diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c
7711c0
index 3f1c06e..3a7c8a3 100644
7711c0
--- a/accel/kvm/kvm-all.c
7711c0
+++ b/accel/kvm/kvm-all.c
7711c0
@@ -39,6 +39,7 @@
7711c0
 #include "trace.h"
7711c0
 #include "hw/irq.h"
7711c0
 #include "sysemu/sev.h"
7711c0
+#include "sysemu/balloon.h"
7711c0
 
7711c0
 #include "hw/boards.h"
7711c0
 
7711c0
@@ -1711,6 +1712,9 @@ static int kvm_init(MachineState *ms)
7711c0
     s->many_ioeventfds = kvm_check_many_ioeventfds();
7711c0
 
7711c0
     s->sync_mmu = !!kvm_vm_check_extension(kvm_state, KVM_CAP_SYNC_MMU);
7711c0
+    if (!s->sync_mmu) {
7711c0
+        qemu_balloon_inhibit(true);
7711c0
+    }
7711c0
 
7711c0
     return 0;
7711c0
 
7711c0
diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
7711c0
index f456cea..4aab291 100644
7711c0
--- a/hw/virtio/virtio-balloon.c
7711c0
+++ b/hw/virtio/virtio-balloon.c
7711c0
@@ -21,7 +21,6 @@
7711c0
 #include "hw/mem/pc-dimm.h"
7711c0
 #include "sysemu/balloon.h"
7711c0
 #include "hw/virtio/virtio-balloon.h"
7711c0
-#include "sysemu/kvm.h"
7711c0
 #include "exec/address-spaces.h"
7711c0
 #include "qapi/error.h"
7711c0
 #include "qapi/qapi-events-misc.h"
7711c0
@@ -36,8 +35,7 @@
7711c0
 
7711c0
 static void balloon_page(void *addr, int deflate)
7711c0
 {
7711c0
-    if (!qemu_balloon_is_inhibited() && (!kvm_enabled() ||
7711c0
-                                         kvm_has_sync_mmu())) {
7711c0
+    if (!qemu_balloon_is_inhibited()) {
7711c0
         qemu_madvise(addr, BALLOON_PAGE_SIZE,
7711c0
                 deflate ? QEMU_MADV_WILLNEED : QEMU_MADV_DONTNEED);
7711c0
     }
7711c0
-- 
7711c0
1.8.3.1
7711c0