Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com> --- INSTALL.DPDK.md | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-)
diff --git a/INSTALL.DPDK.md b/INSTALL.DPDK.md index 276fe56..e1efc8e 100644 --- a/INSTALL.DPDK.md +++ b/INSTALL.DPDK.md @@ -11,8 +11,6 @@ It has not been thoroughly tested. This version of Open vSwitch should be built manually with `configure` and `make`. -OVS needs a system with 1GB hugepages support. - Building and Installing: ------------------------ @@ -202,11 +200,12 @@ Using the DPDK with ovs-vswitchd: interfaces on the same numa node. The following two commands can be used to configure the multi-threading behavior. - `ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=<hex string>` + `ovs-vsctl set Open_vSwitch . other_config:n-pmd-cores=<integer>` - The command above asks for a CPU mask for setting the affinity of pmd - threads. A set bit in the mask means a pmd thread is created and pinned - to the corresponding CPU core. For more information, please refer to + The command above provide a simple way to specify how many cores should be + used to receive and process packets. To use one NIC with more than one + core, multiple receive queues should be set up: the next command can be + used for that purpose. For more information, please refer to `man ovs-vswitchd.conf.db` `ovs-vsctl set Open_vSwitch . other_config:n-dpdk-rxqs=<integer>` @@ -215,6 +214,27 @@ Using the DPDK with ovs-vswitchd: rx queues are assigned to pmd threads on the same numa node in round-robin fashion. For more information, please refer to `man ovs-vswitchd.conf.db` + If more control is needed on which CPU cores are used, please read on. + + `ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=<hex string>` + + The command above asks for a CPU mask for setting the affinity of pmd + threads. A set bit in the mask means a pmd thread is created and pinned + to the corresponding CPU core. If the CPU mask is specified, the + `other_config:n-pmd-cores` parameter is ignored. For more information, + please refer to `man ovs-vswitchd.conf.db` + + Every other OVS thread is bound to the remaining free cores. If other cores + should be reserved for other purposes (e.g, for other DPDK clients), a CPU + mask can be set with the following command: + + `ovs-vsctl set Open_vSwitch . other_config:nonpmd-cpu-mask=<hex string>` + + The above command will limit OVS non PMD threads on the CPU set specified + by the hex string. Please note that core 0 is always used by non PMD + threads, even if it is unset in this mask. For more information, + please refer to `man ovs-vswitchd.conf.db` + Ideally for maximum throughput, the pmd thread should not be scheduled out which temporarily halts its execution. The following affinitization methods can help. -- 2.1.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev