Description of problem: Virtio-1.1 defines a new ring layout for Virtio, should add support for it in Libvirt
For libvirt, we probably just need a new property for virtio-net like: -device virtio-net-pci,ring_packed=true Will update here, when the qemu patch was in. Thanks
*** Bug 1601357 has been marked as a duplicate of this bug. ***
(In reply to jason wang from comment #3) > For libvirt, we probably just need a new property for virtio-net like: > > -device virtio-net-pci,ring_packed=true > > Will update here, when the qemu patch was in. Ideally libvirt would not need to expose this flag at all. IIUC virtio 1.1 should be fully back compatible with virtio 1.0, so QEMU should negotiate with guest whether to use this new ring layout. Thus the main thing to take care with is the migration ABI compat, which can be solved if QEMU sets ring_packed=false for existing machine types, and sets ring_packed=true for new machine types. This way all mgmt apps would automatically get the new improved ring layout without any changes being required up the stack.
(In reply to Daniel Berrange from comment #10) > (In reply to jason wang from comment #3) > > For libvirt, we probably just need a new property for virtio-net like: > > > > -device virtio-net-pci,ring_packed=true > > > > Will update here, when the qemu patch was in. > > Ideally libvirt would not need to expose this flag at all. IIUC virtio 1.1 > should be fully back compatible with virtio 1.0, so QEMU should negotiate > with guest whether to use this new ring layout. > > Thus the main thing to take care with is the migration ABI compat, which can > be solved if QEMU sets ring_packed=false for existing machine types, and > sets ring_packed=true for new machine types. > > This way all mgmt apps would automatically get the new improved ring layout > without any changes being required up the stack. Jason, what do you think?
(In reply to Daniel Berrange from comment #10) > (In reply to jason wang from comment #3) > > For libvirt, we probably just need a new property for virtio-net like: > > > > -device virtio-net-pci,ring_packed=true > > > > Will update here, when the qemu patch was in. > > Ideally libvirt would not need to expose this flag at all. IIUC virtio 1.1 > should be fully back compatible with virtio 1.0, so QEMU should negotiate > with guest whether to use this new ring layout. > > Thus the main thing to take care with is the migration ABI compat, which can > be solved if QEMU sets ring_packed=false for existing machine types, and > sets ring_packed=true for new machine types. > > This way all mgmt apps would automatically get the new improved ring layout > without any changes being required up the stack. If you worry about the default value, we can change it to be enabled by default (upstream). But for RHEL, maybe we need to start 1.1 as technical preview so disable it by default. It's pretty new and it lacks sufficient testing and benchmarking. Thanks
So if there will be no need to turn this feature off and the only reason not to enable it by default is insufficient testing, can the testing be done by libvirt's command passthrough hack? https://libvirt.org/drvqemu.html#qemucommand <domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> ... <qemu:commandline> <qemu:arg value='-set'/> <qemu:arg value='device.net0.ring_packed=true'/> </qemu:commandline> </domain> I really don't like introducing an XML attribute that will be unused in a few months.
Per discussion libvirt support is not needed thus closing it for now. Thanks.