>> Also, I do wonder if we want to default-enable it. It can still have a >> negative performance impact and some people might not want that. > > The negative performance impact should be minimal. At this point the > hinting process ends up being very light since it only processes a > small chunk of the memory before it shuts down for a couple seconds. > In my original data the only time any significant performance > regression was seen was with page shuffling enabled, and that was > before I put limits on how many pages we could process per pass and > how frequently we would make a pass through memory. My thought is that > we are much better having it enabled by default rather than having it > disabled by default. In the worst case scenario we have a little bit > of extra thread noise from it popping up running for a few > milliseconds and then sleeping for about two seconds, but the benefit > side is that the VMs will do us a favor and restrict themselves to a > much smaller idle footprint until such time as the memory is actually > needed in the guest.
While I agree that the impact is small, there *is* a noticeable performance impact. One of the main users is memory overcommit. Also, imagine the following scenarios: - RT workload in the guest. Just because you have a virtio-balloon device defined would mean something is suddenly active and discarding/trying to discard pages. - vfio: free page reporting is completely useless right now and *only* overhead. - prealloc does not expect that pages get suddenly discarded - s390x, which has CMM and might not benefit at all (except when using huge pages as backing storage) No, I don't think it's acceptable to enable this as default. I remember that it is quite common to just define a balloon device but never use it. E.g., "A virtual memory balloon device is added to all Xen and KVM/QEMU guest virtual machines. It will be seen as <memballoon> element" [1]. I think we should let upper layers decide (just as we do for free page hinting, for example). [1] https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/section-libvirt-dom-xml-memory-baloon-device -- Thanks, David / dhildenb