All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Virtio MQ issues
So I've been working on replicating a linux kernel bug (race condition) I've found and as part of that I need a testing environment to replicate the issue. As part of this I've been trying to run qemu (with KVM) on my own hardware.
In order to replicate this issue I need multiple rx networking queues (parallel processing of packets over multiple softirqs).
However I seem to be unable to get interrupts on more than one core with virtio mq.
I would like to avoid the inconvenience of setting up physical hardware for this issue. Although with the time spent so far trying to get MQ to work its sadly starting to look smarter
My qemu command:
qemu-system-x86_64 -nographic -serial mon:stdio -netdev tap,id=qemu0,vhost=on,queues=6,script=/run/qemu-ifup,downscript=/run/qemu-ifdown -device virtio-net-pci,netdev=qemu0,mq=on,vectors=9 -m 512M -drive format=qcow2,file=/image -drive file=user-data.img,format=raw -smp 6 -enable-kvm -cpu host -watchdog i6300esb
Yes, I am running ethtool -L ens3 combined 6
inside the VM to enable multiple queues.
Despite this interrupts are all on the highest of the available CPU. I can't seem to work out why. Is there something needed to make the underlying tap multiqueue? Some kind of RFS? Perhaps optimization due to not receiving enough to need other queues? Affinity is at the default (all CPUs).
I figure some of the providers here may be shipping Virtio with MQ and might be able to offer some advice.
Comments
I could be wrong, but don't you have to start the irqbalance service inside the VM to spread the interrupts?