Hi Christian,

thanks, that worked like a charm, and also my vm now reports 2 queues, but no 
communication is working on the interface (as ovs still warns about unsettable 
options)
i will try the ubuntu packages for ovs-dpdk and dpdk and let you know if this 
works (as i suppose you dont get this warning/error?)

best regards
Felix

Von: Christian Ehrhardt [mailto:christian.ehrha...@canonical.com]
Gesendet: Montag, 4. April 2016 15:58
An: Felix Brucker <fbruc...@xantaro.net>
Cc: Daniele Di Proietto <diproiet...@vmware.com>; Loftus, Ciara 
<ciara.lof...@intel.com>; discuss@openvswitch.org
Betreff: Re: [ovs-discuss] [OVS-DPDK] vhost-user with multiple queues does not 
work

Hi Felix,
this is Ubuntu 16.04 (Xenial).
And I think several of your components need to be upgraded for multiqueue to 
properly work.
IIRC at least your qemu and libvirt are too old.

Please feel free to upgrade your system and go on - you'll get all the newer 
versions and can go on with your experiments.
"sudo do-release-upgrade -d" should do the job for you.

Yet regarding your initial question you see that the guest not "seeing" its 
multiqueues still applies.
Here I hope for some insight from others on the List what else could/should be 
checked.


Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd

On Mon, Apr 4, 2016 at 3:49 PM, Felix Brucker 
<fbruc...@xantaro.net<mailto:fbruc...@xantaro.net>> wrote:
Hi,

for my setup libvirts generated output found in /var/log/libvirt/qemu/vm1.log 
does not seem to include the mq params:

-chardev socket,id=charnet0,path=/usr/local/var/run/openvswitch/vhost-user-0 
-netdev type=vhost-user,id=hostnet0,chardev=charnet0 -device 
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:e3:eb:b2,bus=pci.0,addr=0x2
-chardev socket,id=charnet1,path=/usr/local/var/run/openvswitch/vhost-user-1 
-netdev type=vhost-user,id=hostnet1,chardev=charnet1 -device 
virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:26:50:09,bus=pci.0,addr=0x3

||/ Name                         Version             Architecture        
Description
+++-============================-===================-===================-==============================================================
ii  libvirt-bin                          1.2.16-2ubuntu11.15.10.3            
amd64        programs for the libvirt library
ii  libvirt0                             1.2.16-2ubuntu11.15.10.3            
amd64        library for interfacing with different virtualization systems
ii  qemu-kvm                             1:2.3+dfsg-5ubuntu9.2               
amd64        QEMU Full virtualization
ii  qemu-system-common                   1:2.3+dfsg-5ubuntu9.2               
amd64        QEMU full system emulation binaries (common files)
ii  qemu-system-x86                      1:2.3+dfsg-5ubuntu9.2               
amd64        QEMU full system emulation binaries (x86)

also it seems you have newer versions of libvirt and qemu, on which OS are you 
running this?

Best regards
Felix

Von: Christian Ehrhardt 
[mailto:christian.ehrha...@canonical.com<mailto:christian.ehrha...@canonical.com>]
Gesendet: Montag, 4. April 2016 15:25
An: Felix Brucker <fbruc...@xantaro.net<mailto:fbruc...@xantaro.net>>; Daniele 
Di Proietto <diproiet...@vmware.com<mailto:diproiet...@vmware.com>>
Cc: Loftus, Ciara <ciara.lof...@intel.com<mailto:ciara.lof...@intel.com>>; 
discuss@openvswitch.org<mailto:discuss@openvswitch.org>
Betreff: Re: [ovs-discuss] [OVS-DPDK] vhost-user with multiple queues does not 
work

Hi,
I thought that is rather close to my setup so gave it a look as well.
And at least in the current setup I can confirm what Felix sees:

I added
<driver queues='4'/>
for the vhost_user device as in libvirt since 
https://www.redhat.com/archives/libvir-list/2015-June/msg00201.html

The section libvirt generates out of that is
-chardev socket,id=charnet1,path=
/var/run/openvswitch/vhost-user-2 -netdev 
type=vhost-user,id=hostnet1,chardev=charnet1,queues=4 -device 
virtio-net-pci,mq=on,vectors=10,netdev=hostnet1,id=net1,mac=52:54:00
:62:47:b6,bus=pci.0,addr=0x4

So the 4 queues get here by libvirt, and also the 2*queues+2 vectors get into 
the commandline.
I think it has all that was once summarized here 
http://wiki.qemu.org/Features/vhost-user-ovs-dpdk#Enabling_multi-queue

Yet the device in the guest looks like this (no queues able to be combined)
ethtool -l eth1
Channel parameters for eth1:
Pre-set maximums:
RX:             0
TX:             0
Other:          0
Combined:       1
Current hardware settings:
RX:             0
TX:             0
Other:          0
Combined:       1


Versions of involved programs:
||/ Name                                  Version                 Architecture  
          Description
+++-=====================================-=======================-=======================-===============================================================================
ii  libvirt-bin                           1.3.1-1ubuntu6          amd64         
          programs for the libvirt library
ii  libvirt0:amd64                        1.3.1-1ubuntu6          amd64         
          library for interfacing with different virtualization systems
ii  qemu-kvm                              1:2.5+dfsg-5ubuntu6     amd64         
          QEMU Full virtualization
ii  dpdk                                  2.2.0-0ubuntu6          amd64         
          Data Plane Development Kit (runtime)
ii  libdpdk0:amd64                        2.2.0-0ubuntu6          amd64         
          Data Plane Development Kit (runtime libraries)
ii  openvswitch-common                    2.5.0-0ubuntu1          amd64         
          Open vSwitch common components
ii  openvswitch-switch                    2.5.0-0ubuntu1          amd64         
          Open vSwitch switch implementations
ii  openvswitch-switch-dpdk               2.5.0-0ubuntu1          amd64         
          DPDK enabled Open vSwitch switch implementation

Full qemu commandline:
qemu-system-x86_64 -enable-kvm -name guest-dpdk-vhost-user-2 -S -machine 
pc-i440fx-wily,accel=kvm,usb=o
ff -cpu host -m 2048 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 
-object 
memory-backend-file,id=ram-node0,prealloc=yes,mem-path=/dev/hugepages/libvirt/qemu,share
=yes,size=2147483648<tel:2147483648> -numa 
node,nodeid=0,cpus=0,memdev=ram-node0 -uuid 
380e03d4-ea96-410a-b50f-f7fdbb6facdd -nographic -no-user-config -nodefaults 
-chardev socket,id=charmo
nitor,path=/var/lib/libvirt/qemu/domain-guest-dpdk-vhost-user-2/monitor.sock,server,nowait
 -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown 
-boot
strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive 
file=/var/lib/uvtool/libvirt/images/guest-dpdk-vhost-user-2.qcow,format=qcow2,if=none,id=drive-virtio
-disk0,cache=unsafe -device 
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
 -drive file=/var/lib/uvtool/libvirt/images/guest
-dpdk-vhost-user-2-ds.qcow,format=raw,if=none,id=drive-virtio-disk1,cache=unsafe
 -device 
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk1,id=virtio-disk1
-netdev tap,fd=31,id=hostnet0,vhost=on,vhostfd=33 -device 
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:10:f7:df,bus=pci.0,addr=0x3 
-chardev socket,id=charnet1,path=
/var/run/openvswitch/vhost-user-2 -netdev 
type=vhost-user,id=hostnet1,chardev=charnet1,queues=4 -device 
virtio-net-pci,mq=on,vectors=10,netdev=hostnet1,id=net1,mac=52:54:00
:62:47:b6,bus=pci.0,addr=0x4 -chardev pty,id=charserial0 -device 
isa-serial,chardev=charserial0,id=serial0 -device 
cirrus-vga,id=video0,bus=pci.0,addr=0x2 -device virtio-ba
lloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on

Kind Regards,
Christian

Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd

On Mon, Apr 4, 2016 at 12:17 PM, Felix Brucker 
<fbruc...@xantaro.net<mailto:fbruc...@xantaro.net>> wrote:
Hi,

i followed the Install.DPDK.md<http://Install.DPDK.md> initially, thats where i 
got

ovs-vsctl set Interface vhost-user-2 options:n_rxq=<requested queues>

to set the rx queues for vhost-user interfaces. Im using libvirt, so im not 
passing any cli arguments, rather my xml snippet looks like this:

    <interface type='vhostuser'>
      <mac address='52:54:00:e3:eb:b2'/>
      <source type='unix' path='/usr/local/var/run/openvswitch/vhost-user-0' 
mode='client'/>
      <model type='virtio'/>
      <driver queues='2'/>
    </interface>
    <interface type='vhostuser'>
      <mac address='52:54:00:26:50:09'/>
      <source type='unix' path='/usr/local/var/run/openvswitch/vhost-user-1' 
mode='client'/>
      <model type='virtio'/>
      <driver queues='2'/>
    </interface>

I also tried with an additional name parameter like so:

<driver name='vhost' queues='2'/>

as stated for "running ovs-vswitchd with DPDK backend inside a VM" (which im 
not doing right now), but this also did not change anything.

Best regards
Felix


-----Ursprüngliche Nachricht-----
Von: Loftus, Ciara 
[mailto:ciara.lof...@intel.com<mailto:ciara.lof...@intel.com>]
Gesendet: Montag, 4. April 2016 12:01
An: Felix Brucker <fbruc...@xantaro.net<mailto:fbruc...@xantaro.net>>
Cc: discuss@openvswitch.org<mailto:discuss@openvswitch.org>
Betreff: RE: [ovs-discuss] [OVS-DPDK] vhost-user with multiple queues does not 
work

>
> Hi,
>
> setting
>
> ovs-vsctl set Open_vSwitch . other_config:n-dpdk-rxqs=2
>
> did not create two queues inside the guest, from the name of the
> command i guess it sets the number of rx queues for the pmd host
> interface to 2, but not the vhost-user interface for the vm.
> Im using branch-2.5 because a bug i encountered regarding vhost-thread
> was fixed 6 days ago on that branch.
>
> Best regards
> Felix

Can you share the command line you are using to start the VM? Do you have the 
necessary fields set correctly? eg.

qemu-system-x86_64 ...
-chardev socket,id=char0,path=/my/sock
-netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce,queues=2
-device 
virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1,mrg_rxbuf=off,mq=on,vectors=6

There's more info in INSTALL.DPDK.md<http://INSTALL.DPDK.md> on configuring 
multiqueue.

Thanks,
Ciara

>
>
> -----Ursprüngliche Nachricht-----
> Von: Loftus, Ciara 
> [mailto:ciara.lof...@intel.com<mailto:ciara.lof...@intel.com>]
> Gesendet: Montag, 4. April 2016 11:29
> An: Felix Brucker <fbruc...@xantaro.net<mailto:fbruc...@xantaro.net>>; 
> discuss@openvswitch.org<mailto:discuss@openvswitch.org>
> Betreff: RE: [ovs-discuss] [OVS-DPDK] vhost-user with multiple queues
> does not work
>
> >
> > Hi,
> >
> > when configuring OVS vhost-user interfaces with multiple queues like so:
> >
> > ovs-vsctl set Interface vhost-user-0 options:n_rxq=2 ovs-vsctl set
> > Interface vhost-user-1 options:n_rxq=2
> >
> > i get the following warnings when starting ovs-vswitchd:
> >
> > 2016-04-04T08:53:28Z|00038|netdev|WARN|vhost-user-0: arguments
> > provided to device that is not configurable
> > 2016-04-04T08:53:28Z|00039|netdev|WARN|vhost-user-1: arguments
> > provided to device that is not configurable
> >
> > The guest vm also does not have multiple queues enabled as they are
> > not set in ovs.
> > Im using OVS 2.5 from git -> branch-2.5 -> commit
> > e099c86ca432d1daeaf8edb66225e7edf061c0b0
>
> Hi,
>
> If you are using branch-2.5 you cannot use the n_rxq field. Instead
> you need to set multiple queues like so:
> ovs-vsctl set Open_vSwitch . other_config:n-dpdk-rxqs=4
>
> This sets the number of rxqs for all devices to 4.
>
> Thanks,
> Ciara
>
> >
> > Someone had a similar issue or knows a fix?
> >
> > Best regards
> > Felix

_______________________________________________
discuss mailing list
discuss@openvswitch.org<mailto:discuss@openvswitch.org>
http://openvswitch.org/mailman/listinfo/discuss


_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to