
On Wed, Aug 22, 2018 at 12:36:27PM +0200, Andrea Bolognani wrote:
On Tue, 2018-08-21 at 14:21 -0400, Laine Stump wrote:
On 08/17/2018 06:35 AM, Andrea Bolognani wrote:
If we decide we want to explicitly spell out the options instead of relying on QEMU changing behavior based on the slot type, which is probably a good idea anyway, I think we should have
virtio-0.9 => disable-legacy=no,disable-modern=no virtio-1.0 => disable-legacy=yes,disable-modern=no
There's basically no reason to have a device legacy-only rather than transitional, and spelling out both options instead of only one of them just seems more robust.
I agree with both of those, but the counter-argument is that "virtio" already describes a transitional device like your proposal for virtio-0.9 (at least today), and it makes the versioned models less orthogonal. In the end, I could go either way...
Yeah, Dan already made that argument and convinced me that we should use virtio-0.9 for legacy only, virtio-1.0 for modern only and plain virtio for no enforced behavior / transitional.
I don't understand why we are optimizing the new system for the less useful use cases: I don't see a use case where virtio-0.9 (legacy-only) would be more useful than virtio-transitional. I don't see why anybody would prefer a legacy-only device instead of a transitional device. Even if your guest has only legacy drivers, it might be upgraded and get new drivers in the future. I don't see a use case where virtio-1.0 (modern-only) would be more useful than "virtio". If you are running i440fx, you get a transitional device with "virtio", and I don't see why anybody would prefer a modern-only device. If you are running Q35, you already get a modern-only device with "virtio". The most useful feature users need is the ability to ask for a transitional virtio device on Q35, and this use case is explicitly being left out of the proposal. Why? -- Eduardo