qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC PATCH 3/3] vfio: Inhibit ballooning


From: Alex Williamson
Subject: [Qemu-devel] [RFC PATCH 3/3] vfio: Inhibit ballooning
Date: Tue, 17 Jul 2018 16:47:51 -0600
User-agent: StGit/0.18-102-gdf9f

For all directly assigned devices and potentially some mdev devices,
internal management of pinned pages is incompatible with ballooning.
In the case of mdev devices, QEMU cannot know which pages the vendor
driver has mapped for the device.  It could be only the working set,
which should never be a ballooning victim page, or it could be the
entire VM address space.  Until the vfio IOMMU interface can tell us
more about the support for handling ballooning, assume any vfio
container inhibits ballooning.

Signed-off-by: Alex Williamson <address@hidden>
---
 hw/vfio/common.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/hw/vfio/common.c b/hw/vfio/common.c
index fb396cf00ac4..8124dd8df3c1 100644
--- a/hw/vfio/common.c
+++ b/hw/vfio/common.c
@@ -32,6 +32,7 @@
 #include "hw/hw.h"
 #include "qemu/error-report.h"
 #include "qemu/range.h"
+#include "sysemu/balloon.h"
 #include "sysemu/kvm.h"
 #include "trace.h"
 #include "qapi/error.h"
@@ -1218,6 +1219,9 @@ static int vfio_connect_container(VFIOGroup *group, 
AddressSpace *as,
 
     container->initialized = true;
 
+    /* vfio is currently incompatible with ballooning */
+    qemu_balloon_inhibit(true);
+
     return 0;
 listener_release_exit:
     QLIST_REMOVE(group, container_next);
@@ -1276,6 +1280,8 @@ static void vfio_disconnect_container(VFIOGroup *group)
         g_free(container);
 
         vfio_put_address_space(space);
+
+        qemu_balloon_inhibit(false);
     }
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]