From: Levente Csikor <[email protected]>
Date: Sunday, May 7, 2017 at 6:31 AM
To: Darrell Ball <[email protected]>, "[email protected]"
<[email protected]>
Subject: Re: [ovs-discuss] OVS 2.7.0 + DPDK 17.02 + multicore
Thanks, it's working now! The 'interface' was the keyword indeed!
Do I need to do the affinity ``trick'' as well?
I mean the part similar to after '\' in the following:
ovs-vsctl set interface dpdk-p0 options:n_rxq=4 \
other_config:pmd-rxq-affinity="0:3,1:7,3:8"
I realized that without this OVS automatically assigns cores/threads to the
queues, however when I explicitly set it (like above), the output of
'ovs-appctl dpif-netdev/pmd-rxq-show' says for those threads that they are
isolated (isolated: true).
Otherwise, the value of isolated is false.
Does it have any (significant) impact on the performance or on anything else?
“Isolated” is just an attribute of a PMD and means the PMD will only poll a
specified set of queues.
Affinity could be used to enforce more predictability (in terms of throughout
and latency) for those queues.
Cheers
On 05/07/2017 01:12 AM, Darrell Ball wrote:
From:
<[email protected]><mailto:[email protected]>
on behalf of Levente Csikor <[email protected]><mailto:[email protected]>
Date: Saturday, May 6, 2017 at 3:36 AM
To: "[email protected]"<mailto:[email protected]>
<[email protected]><mailto:[email protected]>
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<https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_support_dist-2Ddocs_ovs-2Dvswitchd.conf.db.5.pdf&d=DwMDaQ&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=3jDNcjtjrAEW8uHiSQEpQ8wq18Wqmzww-elLHB8A3-U&s=R2ZvfMV-uexWNNs3kOvrbfbXl_6X6N_YKhVVbtwIV4M&e=>
also, you should read
http://docs.openvswitch.org/en/latest/howto/dpdk/<https://urldefense.proofpoint.com/v2/url?u=http-3A__docs.openvswitch.org_en_latest_howto_dpdk_&d=DwMDaQ&c=uilaK90D4TOVoH58JNXRgQ&r=BVhFA09CGX7JQ5Ih-uZnsw&m=3jDNcjtjrAEW8uHiSQEpQ8wq18Wqmzww-elLHB8A3-U&s=4Rtw6dRrXrG4vsf12kGPzhnYGLVbHoV4pWiqc39Q4pU&e=>
*************
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
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss