Wow great job digging through all these hypervisors!
On Mon, Apr 07, 2025 at 10:38:59AM +0200, David Hildenbrand wrote:
crossvm: https://github.com/google/crosvm/blob/main/devices/src/virtio/balloon.rs
-> Hard-codes queue numbers; does *not* offer/implement VIRTIO_BALLOON_F_STATS_VQ but does offer VIRTIO_BALLOON_F_STATS_VQ and VIRTIO_BALLOON_F_DEFLATE_ON_OOM.
-> Implements something that is not in the virtio-spec
const VIRTIO_BALLOON_F_WS_REPORTING: u32 = 8; // Working Set Reporting virtqueues
and
const WS_DATA_VQ: usize = 5; const WS_OP_VQ: usize = 6;
IIUC, Linux inside cross-vm might actually be problematic? They would disagree on the virtqueue for free-page-reporting
That's why things must be tied to negotiated features, not to offered ones.
Maybe I am missing something, it's a mess ...
Indeed. Let's fix the implementations while keeping work arounds for existing ones.