I had connected two VMs to native OVS bridge and I got iperf test result of around *35-37Gbps*. Now when I am performing similar tests with two VMs connected to OVS-DPDK bridge using vhostuser ports I am getting the iperf test results as around *6-6.5 Gbps.* I am unable to understand the reason for such low throughput in case of OVS-DPDK. I am using OVS version 2.11.0
I have 4 physical cores on my CPU (i.e. 8 logical cores) and have 16 GB system. I have allocated 6GB for the hugepages pool. 2GB of it was given to OVS socket mem option and the remaining 4GB was given to Virtual machines for memory backing (2Gb per VM). These are some of the configurations of my OVS-DPDK bridge: root@dpdk-OptiPlex-5040:/home/dpdk# ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock --pidfile --detach 2019-04-12T07:01:00Z|00001|ovs_numa|INFO|Discovered 8 CPU cores on NUMA node 0 2019-04-12T07:01:00Z|00002|ovs_numa|INFO|Discovered 1 NUMA nodes and 8 CPU cores 2019-04-12T07:01:00Z|00003|reconnect|INFO|unix:/usr/local/var/run/openvswitch/db.sock: connecting... 2019-04-12T07:01:00Z|00004|reconnect|INFO|unix:/usr/local/var/run/openvswitch/db.sock: connected 2019-04-12T07:01:00Z|00005|dpdk|INFO|Using DPDK 18.11.0 2019-04-12T07:01:00Z|00006|dpdk|INFO|DPDK Enabled - initializing... 2019-04-12T07:01:00Z|00007|dpdk|INFO|No vhost-sock-dir provided - defaulting to /usr/local/var/run/openvswitch 2019-04-12T07:01:00Z|00008|dpdk|INFO|IOMMU support for vhost-user-client disabled. 2019-04-12T07:01:00Z|00009|dpdk|INFO|Per port memory for DPDK devices disabled. 2019-04-12T07:01:00Z|00010|dpdk|INFO|EAL ARGS: ovs-vswitchd -c 0xA --socket-mem 2048 --socket-limit 2048. 2019-04-12T07:01:00Z|00011|dpdk|INFO|EAL: Detected 8 lcore(s) 2019-04-12T07:01:00Z|00012|dpdk|INFO|EAL: Detected 1 NUMA nodes 2019-04-12T07:01:00Z|00013|dpdk|INFO|EAL: Multi-process socket /var/run/dpdk/rte/mp_socket 2019-04-12T07:01:00Z|00014|dpdk|INFO|EAL: Probing VFIO support... 2019-04-12T07:01:00Z|00015|dpdk|INFO|EAL: PCI device 0000:00:1f.6 on NUMA socket -1 2019-04-12T07:01:00Z|00016|dpdk|WARN|EAL: Invalid NUMA socket, default to 0 2019-04-12T07:01:00Z|00017|dpdk|INFO|EAL: probe driver: 8086:15b8 net_e1000_em 2019-04-12T07:01:00Z|00018|dpdk|INFO|DPDK Enabled - initialized 2019-04-12T07:01:00Z|00019|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports recirculation 2019-04-12T07:01:00Z|00020|ofproto_dpif|INFO|netdev@ovs-netdev: VLAN header stack length probed as 1 2019-04-12T07:01:00Z|00021|ofproto_dpif|INFO|netdev@ovs-netdev: MPLS label stack length probed as 3 2019-04-12T07:01:00Z|00022|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports truncate action 2019-04-12T07:01:00Z|00023|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports unique flow ids 2019-04-12T07:01:00Z|00024|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports clone action 2019-04-12T07:01:00Z|00025|ofproto_dpif|INFO|netdev@ovs-netdev: Max sample nesting level probed as 10 2019-04-12T07:01:00Z|00026|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports eventmask in conntrack action 2019-04-12T07:01:00Z|00027|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_clear action 2019-04-12T07:01:00Z|00028|ofproto_dpif|INFO|netdev@ovs-netdev: Max dp_hash algorithm probed to be 1 2019-04-12T07:01:00Z|00029|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_state 2019-04-12T07:01:00Z|00030|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_zone 2019-04-12T07:01:00Z|00031|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_mark 2019-04-12T07:01:00Z|00032|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_label 2019-04-12T07:01:00Z|00033|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_state_nat 2019-04-12T07:01:00Z|00034|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_orig_tuple 2019-04-12T07:01:00Z|00035|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports ct_orig_tuple6 2019-04-12T07:01:00Z|00036|dpdk|INFO|VHOST_CONFIG: vhost-user server: socket created, fd: 48 2019-04-12T07:01:00Z|00037|netdev_dpdk|INFO|Socket /usr/local/var/run/openvswitch/vhost-user2 created for vhost-user port vhost-user2 2019-04-12T07:01:00Z|00038|dpdk|INFO|VHOST_CONFIG: bind to /usr/local/var/run/openvswitch/vhost-user2 2019-04-12T07:01:00Z|00039|netdev_dpdk|WARN|dpdkvhostuser ports are considered deprecated; please migrate to dpdkvhostuserclient ports. 2019-04-12T07:01:00Z|00040|netdev|WARN|vhost-user2: arguments provided to device that is not configurable 2019-04-12T07:01:00Z|00041|dpif_netdev|INFO|PMD thread on numa_id: 0, core id: 0 created. 2019-04-12T07:01:00Z|00042|dpif_netdev|INFO|PMD thread on numa_id: 0, core id: 2 created. 2019-04-12T07:01:00Z|00043|dpif_netdev|INFO|There are 2 pmd threads on numa node 0 2019-04-12T07:01:00Z|00044|dpif_netdev|INFO|Core 0 on numa node 0 assigned port 'vhost-user2' rx queue 0 (measured processing cycles 0). 2019-04-12T07:01:00Z|00045|bridge|INFO|bridge br0: added interface vhost-user2 on port 2 2019-04-12T07:01:00Z|00046|dpif_netdev|INFO|Core 0 on numa node 0 assigned port 'vhost-user2' rx queue 0 (measured processing cycles 0). 2019-04-12T07:01:00Z|00047|bridge|INFO|bridge br0: added interface br0 on port 65534 2019-04-12T07:01:00Z|00048|dpdk|INFO|VHOST_CONFIG: vhost-user server: socket created, fd: 60 2019-04-12T07:01:00Z|00049|netdev_dpdk|INFO|Socket /usr/local/var/run/openvswitch/vhost-user1 created for vhost-user port vhost-user1 2019-04-12T07:01:00Z|00050|dpdk|INFO|VHOST_CONFIG: bind to /usr/local/var/run/openvswitch/vhost-user1 2019-04-12T07:01:00Z|00051|netdev|WARN|vhost-user1: arguments provided to device that is not configurable 2019-04-12T07:01:00Z|00052|dpif_netdev|INFO|Core 0 on numa node 0 assigned port 'vhost-user2' rx queue 0 (measured processing cycles 0). 2019-04-12T07:01:00Z|00053|dpif_netdev|INFO|Core 2 on numa node 0 assigned port 'vhost-user1' rx queue 0 (measured processing cycles 0). 2019-04-12T07:01:00Z|00054|bridge|INFO|bridge br0: added interface vhost-user1 on port 1 2019-04-12T07:01:00Z|00055|bridge|INFO|bridge br0: using datapath ID 00009642775e6d45 2019-04-12T07:01:00Z|00056|connmgr|INFO|br0: added service controller "punix:/usr/local/var/run/openvswitch/br0.mgmt" 2019-04-12T07:01:00Z|00057|netdev|WARN|vhost-user2: arguments provided to device that is not configurable 2019-04-12T07:01:00Z|00058|netdev|WARN|vhost-user1: arguments provided to device that is not configurable (1) Any direction where I may be going wrong which is resulting in such low throughput? (2) How the specification of dpdk-lcore-mask and pmd-cpu-mask affects the performance of OVS-DPDK?
_______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss