[ovs-dev] [PATCH v6 2/2] doc: Refactor DPDK install guide, add ADVANCED doc
Bodireddy, Bhanuprakash
bhanuprakash.bodireddy at intel.com
Wed Jun 8 14:20:46 UTC 2016
Thanks Mauricio for your comments. Comments inline.
>+### 3.7 Compiler Optimizations
>+
>+ The default compiler optimization level is '-O2'. Changing this to
>+ more aggressive compiler optimization such as '-O3 -march=native'
>+ with gcc(verified on 5.3.1) can produce performance gains though not
>+ siginificant. '-march=native' will produce optimized code on local machine
>+ and should be used when SW compilation is done on Testbed.
>+
>+## <a name="perftune"></a> 4. Performance Tuning
>+
>
>Reading section 3 I feel all the setting are oriented to the performance, then
>what is the difference between section 3 and 4?
Section 3 talks about BIOS settings, PCIe slot selection, core isolation, NUMA. I have recommended best known configuration but this can vary between server platforms and can be ignored in few cases. Section 4 talks about pmd, qemu threads affinity, MQ, EMC, mrg_rxbuf which are quite generic ones and have to be tuned by users looking for extra performance.
As you pointed both sections3, 4 are all about achieving optimum performance with OVS DPDK.
>+### 4.1 Affinity
>+
>+For superior performance, DPDK pmd threads and Qemu vCPU threads
>+needs to be affinitized accordingly.
>+
>+ * PMD thread Affinity
>+
>+ A poll mode driver (pmd) thread handles the I/O of all DPDK
>+ interfaces assigned to it. A pmd thread shall poll the ports
>+ for incoming packets, switch the packets and send to tx port.
>+ pmd thread is CPU bound, and needs to be affinitized to isolated
>+ cores for optimum performance.
>+
>+ By setting a bit in the mask, a pmd thread is created and pinned
>+ to the corresponding CPU core. e.g. to run a pmd thread on core 2
>+
>+ `ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=4`
>+
>+ Note: pmd thread on a NUMA node is only created if there is
>+ at least one DPDK interface from that NUMA node added to OVS.
>+
>+ * Qemu vCPU thread Affinity
>+
>+ A VM performing simple packet forwarding or running complex packet
>+ pipelines has to ensure that the vCPU threads performing the work has
>+ as much CPU occupancy as possible.
>+
>+ Example: On a multicore VM, multiple QEMU vCPU threads shall be
>spawned.
>+ when the DPDK 'testpmd' application that does packet forwarding
>+ is invoked, 'taskset' cmd should be used to affinitize the vCPU threads
>+ to the dedicated isolated cores on the host system.
>+
>+### 4.2 Multiple poll mode driver threads
>+
Regards,
Bhanu Prakash.
More information about the dev
mailing list