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. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev