On Mon, Apr 07, 2025 at 10:17:10AM +0200, David Hildenbrand wrote: > On 07.04.25 09:52, Michael S. Tsirkin wrote: > > On Fri, Apr 04, 2025 at 05:39:10PM +0200, Halil Pasic wrote: > > > > > > > > Not perfect, but AFAIKS, not horrible. > > > > > > It is like it is. QEMU does queue exist if the corresponding feature > > > is offered by the device, and that is what we have to live with. > > > > I don't think we can live with this properly though. > > It means a guest that does not know about some features > > does not know where to find things. > > Please describe a real scenario, I'm missing the point.
OK so. Device has VIRTIO_BALLOON_F_FREE_PAGE_HINT and VIRTIO_BALLOON_F_REPORTING Driver only knows about VIRTIO_BALLOON_F_REPORTING so it does not know what does VIRTIO_BALLOON_F_FREE_PAGE_HINT do. How does it know which vq to use for reporting? It will try to use the free page hint one. > Whoever adds new feat_X *must be aware* about all previous features, > otherwise we'd be reusing feature bits and everything falls to pieces. The knowledge is supposed be limited to which feature bit to use. > > > > So now, I am inclined to add linux code to work with current qemu and > > with spec compliant one, and add qemu code to work with current linux > > and spec compliant one. > > > > Document the bug in the spec, maybe, in a non conformance section. > > I'm afraid this results in a lot of churn without really making things > better. > IMHO, documenting things how they actually behave, and maybe moving towards > fixed queue indexes for new features is the low hanging fruit. I worry about how to we ensure that? If old code is messed up people will just keep propagating that. I would like to fix old code so that new code is correct. > > As raised, it's not just qemu+linux, it's *at least* also cloud-hypervisor. > > -- > Cheers, > > David / dhildenb There's a slippery slope here in that people will come to us with buggy devices and ask to change the spec. -- MST