On 10.06.20 15:04, Tony Krowiak wrote: > > > On 6/10/20 7:54 AM, David Hildenbrand wrote: >> VFIO is (except devices without a physical IOMMU or some mediated devices) >> incompatible with discarding of RAM. The kernel will pin basically all VM >> memory. Let's convert to ram_block_discard_disable(), which can now >> fail, in contrast to qemu_balloon_inhibit(). >> >> Leave "x-balloon-allowed" named as it is for now. >> >> Cc: Cornelia Huck <cohuck@xxxxxxxxxx> >> Cc: Alex Williamson <alex.williamson@xxxxxxxxxx> >> Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx> >> Cc: Tony Krowiak <akrowiak@xxxxxxxxxxxxx> >> Cc: Halil Pasic <pasic@xxxxxxxxxxxxx> >> Cc: Pierre Morel <pmorel@xxxxxxxxxxxxx> >> Cc: Eric Farman <farman@xxxxxxxxxxxxx> >> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > > See my two minor comments, other than that: > Reviewed-by: Tony Krowiak <akrowiak@xxxxxxxxxxxxx> > >> --- >> hw/vfio/ap.c | 10 +++---- >> hw/vfio/ccw.c | 11 ++++---- >> hw/vfio/common.c | 53 +++++++++++++++++++---------------- >> hw/vfio/pci.c | 6 ++-- >> include/hw/vfio/vfio-common.h | 4 +-- >> 5 files changed, 45 insertions(+), 39 deletions(-) >> >> diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c >> index 95564c17ed..d0b1bc7581 100644 >> --- a/hw/vfio/ap.c >> +++ b/hw/vfio/ap.c >> @@ -105,12 +105,12 @@ static void vfio_ap_realize(DeviceState *dev, Error **errp) >> 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. >> + * vfio-ap devices operate in a way compatible discarding of memory in > > s/compatible discarding/compatible with discarding/? Very right! [...] >> diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c >> index 342dd6b912..c33c11b7e4 100644 >> --- a/hw/vfio/pci.c >> +++ b/hw/vfio/pci.c >> @@ -2796,7 +2796,7 @@ static void vfio_realize(PCIDevice *pdev, Error **errp) >> } >> >> /* >> - * Mediated devices *might* operate compatibly with memory ballooning, but >> + * Mediated devices *might* operate compatibly with discarding of RAM, but >> * we cannot know for certain, it depends on whether the mdev vendor driver >> * stays in sync with the active working set of the guest driver. Prevent >> * the x-balloon-allowed option unless this is minimally an mdev device. >> @@ -2809,7 +2809,7 @@ static void vfio_realize(PCIDevice *pdev, Error **errp) >> >> trace_vfio_mdev(vdev->vbasedev.name, is_mdev); >> >> - if (vdev->vbasedev.balloon_allowed && !is_mdev) { >> + if (vdev->vbasedev.ram_block_discard_allowed && !is_mdev) { >> error_setg(errp, "x-balloon-allowed only potentially compatible " >> "with mdev devices"); > > Should this error message be changed? I didn't rename the property ("x-balloon-allowed"), so the error message is still correct. Thanks! -- Thanks, David / dhildenb