[ovs-discuss] OVS 2.7.0 + DPDK 17.02 + multicore

Darrell Ball dball at vmware.com
Sun May 7 00:12:16 UTC 2017



From: <ovs-discuss-bounces at openvswitch.org> on behalf of Levente Csikor <csikor at tmit.bme.hu>
Date: Saturday, May 6, 2017 at 3:36 AM
To: "discuss at openvswitch.org" <discuss at openvswitch.org>
Subject: [ovs-discuss] OVS 2.7.0 + DPDK 17.02 + multicore

Dear All,

I would like to run OVS with DPDK using multiple cores by multiple poll-mode driver threads to fine tune the performance and achieve higher packet rate.
I realized that since version 2.5.0 the multiple core assignment changed a bit, and I followed the instructions at http://docs.openvswitch.org/en/latest/intro/install/dpdk/<https://urldefense.proofpoint.com/v2/url?u=http-3A__docs.openvswitch.org_en_latest_intro_install_dpdk_&d=DwMDaQ&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=L_sO_555UZCkLTLLfgsvpixjfPj6uRLy9AJhNbSppMA&s=5qBNp8XzYYYmUz6gGXR0eYxcQ3QIjEF3jU526iCJe00&e=>

Everything is properly installed and set with respect to hugepages, dpdk drivers, etc.

Here is the relevant part of my init-script, for instance, in case of 3 cores:
sudo $OVS_PATH/utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
sudo $OVS_PATH/utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=e
sudo $OVS_PATH/utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="4096,0"
sudo $OVS_PATH/utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-hugepage-dir="/mnt/huge"

sudo $OVS_PATH/utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=e
sudo $OVS_PATH/utilities/ovs-vsctl --no-wait set Open_vSwitch . other_config:n-rxq=3



*************

I guess you want “options : n_rxq” in Interface table

see
http://openvswitch.org/support/dist-docs/ovs-vswitchd.conf.db.5.pdf

also, you should read

http://docs.openvswitch.org/en/latest/howto/dpdk/


*************



sudo $OVS_PATH/vswitchd/ovs-vswitchd   unix:$DB_SOCK --pidfile --detach

I also tried the older version of rx_queue setup that worked for version 2.5.0:
sudo $OVS_PATH/utilities/ovs-vsctl set Open_vSwitch . other_config:n-dpdk-rxqs=3

Open vSwitch starts, but after installing numerous flow rules, sending different packets with different L2/L3/L4 headers (to foster RSS), it did not scale up. It still used only 1 core.
Linux command top showed only 100% CPU load instead of 300%, or even when I checked /proc/cpuinfo it also showed that only 1 core is scaled up to the maximum CPU frequency.
(Furthermore, if the outputs of these programs were wrong after all, I check the packet rate as well, but it did not change unfortunately)


Would anyone be so kind as to further assist me towards using multiple cores?
What did I miss/do wrong?

Thank you in advance,
Levi




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20170507/9a49d739/attachment.html>


More information about the discuss mailing list