On Thu, Apr 16, 2020 at 12:30:38PM -0700, Alexander Duyck wrote: > From: Alexander Duyck <alexander.h.duyck@xxxxxxxxxxxxxxx> > > If we have free page hinting or page reporting enabled we should disable it > if the pages are poisoned or initialized on free and we cannot notify the > hypervisor. > > Fixes: 5d757c8d518d ("virtio-balloon: add support for providing free page reports to host") > > Signed-off-by: Alexander Duyck <alexander.h.duyck@xxxxxxxxxxxxxxx> Why not put this logic in the hypervisor? We don't know what hypervisor uses the hints for. Yes you can not just drop them but you can maybe do other things such as MADV_SOFT_OFFLINE. Finally, VIRTIO_BALLOON_F_FREE_PAGE_HINT does nothing at all unless guest gets the command from hypervisor, so there isn't even any overhead. > --- > drivers/virtio/virtio_balloon.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c > index 95d9c2f0a7be..08bc86a6e468 100644 > --- a/drivers/virtio/virtio_balloon.c > +++ b/drivers/virtio/virtio_balloon.c > @@ -1110,8 +1110,12 @@ static int virtballoon_validate(struct virtio_device *vdev) > /* Tell the host whether we care about poisoned pages. */ > if (!want_init_on_free() && > (IS_ENABLED(CONFIG_PAGE_POISONING_NO_SANITY) || > - !page_poisoning_enabled())) > + !page_poisoning_enabled())) { > __virtio_clear_bit(vdev, VIRTIO_BALLOON_F_PAGE_POISON); > + } else if (!virtio_has_feature(vdev, VIRTIO_BALLOON_F_PAGE_POISON)) { > + __virtio_clear_bit(vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT); > + __virtio_clear_bit(vdev, VIRTIO_BALLOON_F_REPORTING); > + } > > __virtio_clear_bit(vdev, VIRTIO_F_IOMMU_PLATFORM); > return 0; _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization