Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!


In this Discussion

Virtio MQ issues
New on LowEndTalk? Please Register and read our Community Rules.

All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Virtio MQ issues

SplitIceSplitIce Member, Host Rep
edited December 2020 in General

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?

Sign In or Register to comment.