vfio-ap devices do not pin any pages in the host. Therefore, they are belived to be compatible with memory ballooning.
Flag them as compatible, so both vfio-ap and a balloon can be used simultaneously. Signed-off-by: Cornelia Huck <coh...@redhat.com> --- As briefly discussed on IRC. RFC as I do not have easy access to hardware I can test this with. --- hw/vfio/ap.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 65de952f44..3bf48eed28 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 are believed to 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.2