I understand that concern, IIUC it would imply that:
a) In case of a hypervisor, we never ran with a Linux guest
b) In case of a guest, we never ran under QEMU
Or maybe VIRTIO_BALLOON_F_FREE_PAGE_HINT is set.
It's certainly possible, although I would assume that most other
implementation candidates (e.g., cloud-hypervisor) would have complained by
now about Linux issues.
They either set VIRTIO_BALLOON_F_FREE_PAGE_HINT or followed linux bug to
work around.
What's your experience: if someone would actually implement it according to
the spec, would they watch out on the virtio mailing lists for changes (or
even be able to vote) and would be able to comment that adjusting the spec
to the real first implementation is wrong?
Unfortunately my experience is that it's not that likely :(
Whatever we do, we need to take existing setups into account.
How would we do it in the spec without breaking working setups? I guess
we could say that both behaviours are legal. That would still mean we
need the qemu and linux patches, right?