snabbco / snabb

Snabb: Simple and fast packet networking
Apache License 2.0
2.97k stars 299 forks source link

How to use multiqueue with vhost-user #1131

Open sjoki opened 7 years ago

sjoki commented 7 years ago

Hi, I tried to run qemu 2.5.1.1 (also tried 2.7.1) with multuqueue support.

/usr/local/bin/qemu-system-x86_64 --enable-kvm -drive if=virtio,file=./ubuntu.qcow2 -smp cores=6 -m 2048M -numa node,memdev=mem -mem-prealloc -mem-path /dev/hugepages -object memory-backend-file,id=mem,size=2048M,mem-path=/dev/hugepages,share=on -chardev socket,id=chr0,server,path=/tmp/vhu0.sock -netdev type=vhost-user,id=net0,chardev=chr0,queues=2 -device virtio-net-pci,netdev=net0,id=net0,mac=08:00:00:00:00:01,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off,mq=on,vectors=6 -device vfio-pci,host=02:00.1 -device pci-assign,host=05:00.0 -realtime mlock=on -vnc :1

I run my test vhost app application and get a message from qemu

qemu-system-x86_64: -netdev type=vhost-user,id=net0,chardev=chr0,queues=2: you are asking more queues than supported: 1

I did not find any examples of how to use multuqueue the with the vhostuser app. Are there any instructions about this? At the moment I'm using RPS feature linux kernel to balance packets between the VM cores.

Thanks!

lukego commented 7 years ago

Howdy!

We are lacking an example. The root issue is that our multiqueue code was written in parallel with the QEMU side and then this evolved before it landed upstream there (took a year or two.) So it is possible that we have some compatibility issues with QEMU mainline and somebody needs to check into that :-)