[ovs-dev] OVS (master) + DPDK(17.11) + multi-queue

Ilya Maximets i.maximets at samsung.com
Wed Jun 20 12:25:08 UTC 2018


On 19.06.2018 22:41, Ravi Kerur wrote:
> Hi,
> 
> 
> On Tue, Jun 19, 2018 at 12:27 AM Ilya Maximets <i.maximets at samsung.com <mailto:i.maximets at samsung.com>> wrote:
> 
>     Hi,
>     According to your log, your NIC has limited size of tx queues:
> 
>       2018-06-19T04:34:46.106Z|00089|dpdk|ERR|PMD: Unsupported size of TX queue
>                                                    (max size: 1024)
> 
>     This means that you have to configure 'n_txq_desc' <= 1024 in order to
>     configure your NIC properly. OVS uses 2048 by default and this is causes
>     device configuration failure.
> 
>     Try this:
> 
>         ovs-vsctl set interface eth1 options:n_txq_desc=1024
> 
>     It also likely that you will have to configure the same value for 'n_rxq_desc'.
> 
> 
> Thank you. It was indeed no. queue descriptors issue. Modifying the config to 1024 fixed it.
> 
> I am using 'pdump/pcap' features in dpdk for packet capture with OVS-DPDK and currently it doesn't seem to work. I used following link
> 
> https://software.intel.com/en-us/articles/dpdk-pdump-in-open-vswitch-with-dpdk
> 
> OVS is linked to DPDK 17.11.2 which has pdump library built. OVS has pdump server socket file created
> 
> ls -l /usr/local/var/run/openvswitch/
> total 8
> ...
> srwxr-x--- 1 root root 0 Jun 19 19:26 pdump_server_socket
> srwxr-x--- 1 root root 0 Jun 19 19:26 vhost-user-1
> srwxr-x--- 1 root root 0 Jun 19 19:26 vhost-user-2
> 
> ./x86_64-native-linuxapp-gcc/build/app/pdump/dpdk-pdump -- --pdump port=1,queue=*,rx-dev=/tmp/pkts.pcap --server-socket-path=/usr/local/var/run/openvswitch
> EAL: Detected 8 lcore(s)
> PANIC in rte_eal_config_attach():
> *Cannot open '/var/run/.rte_config' for rte_mem_config*
> 6: [./x86_64-native-linuxapp-gcc/build/app/pdump/dpdk-pdump(_start+0x29) [0x4472e9]]
> 5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7ff0ae7ba830]]
> 4: [./x86_64-native-linuxapp-gcc/build/app/pdump/dpdk-pdump(main+0x155) [0x44aa76]]
> 3: [./x86_64-native-linuxapp-gcc/build/app/pdump/dpdk-pdump(rte_eal_init+0xc7d) [0x49ef0d]]
> 2: [./x86_64-native-linuxapp-gcc/build/app/pdump/dpdk-pdump(__rte_panic+0xc3) [0x43ebb3]]
> 1: [./x86_64-native-linuxapp-gcc/build/app/pdump/dpdk-pdump(rte_dump_stack+0x2b) [0x4a573b]]
> Aborted
> 
> Anything I am missing?


I never used pdump with OVS, actually.
I'd personally suggest you to try "ovs-tcpdump" instead.


> 
> Thanks.
> 
> 
>     Note that OVS manages TX queues itself and it will try to allocate
>     separate TX queue for each PMD thread + 1 for non-PMD threads. So,
>     it's kind of impossible to force it to configure only one TX queue
>     in case HW supports multiqueue.
> 
>     > Hi,
>     >
>     > I am using above configuration on my testbed and when I try to add a port
>     > which is bound to igb_uio, I see following errors due to Tx queue
>     > configuration. I just want to use single Tx and Rx queue for my testing. I
>     > looked at Documentation/intro/install/dpdk.rst, i see only "DPDK Physical
>     > Port Rx Queues" and nothing for "Tx Queues". Kindly let me know how can I
>     > use single tx/rx queues and if I have to use multiple Tx queues what
>     > configuration changes I need to do?
>     >
>     > ============ovs logs======================
>     > 2018-06-19T04:33:23.720Z|00075|bridge|INFO|ovs-vswitchd (Open vSwitch)
>     > 2.9.90
>     > 2018-06-19T04:33:32.735Z|00076|memory|INFO|127688 kB peak resident set size
>     > after 10.1 seconds
>     > 2018-06-19T04:33:32.735Z|00077|memory|INFO|handlers:5 ports:1
>     > revalidators:3 rules:5
>     > 2018-06-19T04:33:40.857Z|00078|rconn|INFO|br0<->unix#0: connected
>     > 2018-06-19T04:33:40.858Z|00079|rconn|INFO|br0<->unix#1: connected
>     > 2018-06-19T04:33:40.859Z|00080|rconn|INFO|br0<->unix#2: connected
>     > 2018-06-19T04:34:46.094Z|00081|dpdk|INFO|EAL: PCI device 0000:00:06.0 on
>     > NUMA socket 0
>     > 2018-06-19T04:34:46.094Z|00082|dpdk|INFO|EAL:   probe driver: 1d0f:ec20
>     > net_ena
>     > 2018-06-19T04:34:46.095Z|00083|dpdk|INFO|PMD: eth_ena_dev_init():
>     > Initializing 0:0:6.0
>     > 2018-06-19T04:34:46.095Z|00084|netdev_dpdk|INFO|Device '0000:00:06.0'
>     > attached to DPDK
>     > 2018-06-19T04:34:46.099Z|00085|dpif_netdev|INFO|PMD thread on numa_id: 0,
>     > core id:  0 created.
>     > 2018-06-19T04:34:46.099Z|00086|dpif_netdev|INFO|There are 1 pmd threads on
>     > numa node 0
>     > 2018-06-19T04:34:46.105Z|00087|netdev_dpdk|WARN|Rx checksum offload is not
>     > supported on port 0
>     > 2018-06-19T04:34:46.105Z|00088|dpdk|INFO|PMD: Set MTU: 1500
>     > 2018-06-19T04:34:46.106Z|00089|dpdk|ERR|PMD: Unsupported size of TX queue
>     > (max size: 1024)
>     > 2018-06-19T04:34:46.106Z|00090|netdev_dpdk|INFO|Interface eth1 unable to
>     > setup txq(0): Invalid argument
>     > 2018-06-19T04:34:46.106Z|00091|netdev_dpdk|ERR|Interface eth1(rxq:1 txq:2
>     > lsc interrupt mode:false) configure error: Invalid argument
>     > 2018-06-19T04:34:46.106Z|00092|dpif_netdev|ERR|Failed to set interface eth1
>     > new configuration
>     > 2018-06-19T04:34:46.106Z|00093|bridge|WARN|could not add network device
>     > eth1 to ofproto (No such device)
>     >
>     >
>     > ethtool -l eth1
>     > Channel parameters for eth1:
>     > Pre-set maximums:
>     > RX:        128
>     > TX:        128
>     > Other:        0
>     > Combined:    0
>     > Current hardware settings:
>     > RX:        8
>     > TX:        8
>     > Other:        0
>     > Combined:    0
>     >
>     > ovs-vsctl get  Open_vSwitch . other_config
>     > {dpdk-extra="--file-prefix=host", dpdk-hugepage-dir="/dev/hugepages_1G",
>     > dpdk-init="true"}
>     >
>     > ovs-vswitchd --version
>     > ovs-vswitchd (Open vSwitch) 2.9.90
>     > DPDK 17.11.2
>     >
>     > ovs-vsctl get Open_vSwitch . dpdk_version
>     > "DPDK 17.11.2"
>     >
>     > ovs-vsctl get Open_vSwitch . dpdk_initialized
>     > true
>     >
>     > Thanks.
> 


More information about the dev mailing list