From: Cornelia Huck <coh...@redhat.com> vfio-ap devices do not pin any pages in the host. Therefore, they are compatible with memory ballooning.
Flag them as compatible, so both vfio-ap and a balloon can be used simultaneously. Cc: qemu-sta...@nongnu.org Acked-by: Christian Borntraeger <borntrae...@de.ibm.com> Tested-by: Tony Krowiak <akrow...@linux.ibm.com> Reviewed-by: Halil Pasic <pa...@linux.ibm.com> Signed-off-by: Cornelia Huck <coh...@redhat.com> (cherry picked from commit 1883e8fc8005e9ef452890a075bae98e8c432968) Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com> --- hw/vfio/ap.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 65de952f44..0a25f5e096 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -104,6 +104,14 @@ static void vfio_ap_realize(DeviceState *dev, Error **errp) vapdev->vdev.name = g_strdup_printf("%s", mdevid); vapdev->vdev.dev = dev; + /* + * vfio-ap devices operate in a way compatible with + * memory ballooning, as no pages are pinned in the host. + * This needs to be set before vfio_get_device() for vfio common to + * handle the balloon inhibitor. + */ + vapdev->vdev.balloon_allowed = true; + ret = vfio_get_device(vfio_group, mdevid, &vapdev->vdev, &local_err); if (ret) { goto out_get_dev_err; -- 2.17.1