On 17.04.20 13:02, Michael S. Tsirkin wrote: > On Fri, Apr 17, 2020 at 12:31:14PM +0200, David Hildenbrand wrote: >> On 17.04.20 12:29, Michael S. Tsirkin wrote: >>> On Fri, Apr 17, 2020 at 12:26:24PM +0200, David Hildenbrand wrote: >>>> On 17.04.20 12:19, Michael S. Tsirkin wrote: >>>>> On Fri, Apr 17, 2020 at 12:09:38PM +0200, David Hildenbrand wrote: >>>>>> > What do you call "hinting ends" though? The fact we put >>>>>>> a page in the VQ is not a guarantee that it's been consumed >>>>>>> by the hypervisor. >>>>>>> >>>>>> >>>>>> I'd say hinting ends once the hypervisor sets FREE_PAGE_REPORT_S_DONE. >>>>> >>>>> Can't find that one anywhere. what did I miss? >>>> >>>> Sorry, the QEMU implementation is confusing. FREE_PAGE_REPORT_S_DONE is >>>> translated to VIRTIO_BALLOON_CMD_ID_DONE >>> >>> Well VIRTIO_BALLOON_CMD_ID_DONE just means "don't give me any >>> more hints, I finished migration". >>> Guest will stop hinting even without that once it scans all >>> free memory. >> >> Yeah, that's the end of the whole process where you can be sure the host >> processed all requests definetly. > > It's not guaranteed to happen :) Sending an interrupt at the end > of each scan doubles the overhead ... Yeah, AFAIKs you either get a VIRTIO_BALLOON_CMD_ID_STOP or a VIRTIO_BALLOON_CMD_ID_DONE at the end. And AFAIK both will guarantee that all previous hints were handled. ... but reconstructing this protocol from code is probably too much for a friday afternoon, lol -- Thanks, David / dhildenb _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization