Enabling TSO offload allows a host stack to delegate the segmentation of oversized TCP packets to the underlying physical NIC, if supported. In the case of a VM this means that the segmentation of the packets is not performed by the guest kernel, but by the host NIC itself. In turn, since the TSO calculations and checksums are being performed in hardware, this alleviates the CPU load on the host system. In inter VM communication this might account to significant savings, and higher throughput, even more so if the VMs are running on the same host.
Thus, although inter VM communication is already possible as is, there's a sacrifice in terms of CPU, which may affect the overall throughput. This series adds support for TSO in OvS-DPDK, by making use of the TSO offloading feature already supported by DPDK vhost backend, having the following scenarios in mind: - Inter VM communication on the same host; - Inter VM communication on different hosts; - The same two use cases above, but on a VLAN network. The work is based on [1]; It has been rebased to run on top of the multi-segment mbufs work (v14) [2] and re-worked to use DPDK v18.11. [1] https://patchwork.ozlabs.org/patch/749564/ [2] https://mail.openvswitch.org/pipermail/ovs-dev/2019-January/355103.html v3: - Rebase on multi-segments v14; - Fix dp_packet_is_tso() by checking for the PKT_TX_L4_MASK offload flag as well; - In netdev_dpdk_eth_tx_burst(), revert the logic to minimize the impact for the default case (multi-segment mbufs disabled) (1/3, Ian Stokes); - Fix warnings in VLOG_WARNs for 32bits and when compiling dp_packet_is_tso() without DPDK (2/3 Ian Stokes); - Fix docs and rename netdev_dpdk_filter_packet_len() to netdev_dpdk_filter_packet() as it now filters packet based on TSO (3/3, Ian Stokes). Tiago Lam (3): netdev-dpdk: Validate packets burst before Tx. netdev-dpdk: Consider packets marked for TSO. netdev-dpdk: Enable TSO when using multi-seg mbufs Documentation/automake.mk | 1 + Documentation/topics/dpdk/index.rst | 1 + Documentation/topics/dpdk/tso.rst | 99 +++++++++++++++++ NEWS | 1 + lib/dp-packet.h | 16 +++ lib/netdev-bsd.c | 11 +- lib/netdev-dpdk.c | 211 +++++++++++++++++++++++++++++++----- lib/netdev-dummy.c | 11 +- lib/netdev-linux.c | 15 +++ 9 files changed, 334 insertions(+), 32 deletions(-) create mode 100644 Documentation/topics/dpdk/tso.rst -- 2.7.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev