From: Anurag Agarwal <anurag.agar...@ericsson.com> ========= Disclaimer ============== This patch set was prepared and verified downstream in early 2021. A very similar set of patches with auto load balance enhancements has recently been submitted by Red Hat: https://mail.openvswitch.org/pipermail/ovs-dev/2021-June/383618.html.
We acknowledge the large overlap between both patch sets and submit our set of patches to underline the importance of these improvements and offer our own implementation as an alternative proposal. We are very much open to discussing the best way forward in the OVS-DPDK community to merge all improvements together in one patch set. ======================================= The rxq auto-load balancing in dpif-netdev is an important function for maximizing the total throughput of the OVS-DPDK datapath in cloud deployments with unknown and highly variable load on a dynamically changing set of vhostuser ports on top of a static configuration of physical ports and PMD threads. We have found in live tests that the efficacy of auto-lb can be further improved by giving OVS more freedom in distributing rxqs, e.g. to assign phy rxqs to NUMA-remote PMDs(cross-NUMA polling) or vhostuser rxqs to PMDs with pinned phy rxqs. The following two interface configuration knobs have been introduced to relax the constraints on rxq_scheduling() function. ovs-vsctl set interface <Name> \ other_config : pmd-rxq-affinity = rxq1:cpu1,rxq2:cpu2,...[,no-isol] ovs-vsctl set interface <Name> other_config:cross-numa-polling=true The auto-lb dry-run code is refactored to rely on rxq_scheduling() function in order to get rid of duplicated code and inconsistencies. Finally a new least-loaded scheduling algorithm is implemented to assign RxQs to PMDs based on the PMD load to achieve equally balanced traffic load to PMDs. Anurag Agarwal (4): dpif-netdev: Refactor rxq auto-lb dry-run code. dpif-netdev: Least-loaded scheduling algorithm for rxqs dpif-netdev: pmd-rxq-affinity with optional PMD isolation dpif-netdev: Allow cross-NUMA polling on selected ports Documentation/topics/dpdk/pmd.rst | 46 ++- lib/dpif-netdev.c | 612 ++++++++++++++++++++------------------ tests/pmd.at | 59 +++- vswitchd/vswitch.xml | 31 +- 4 files changed, 442 insertions(+), 306 deletions(-) -- 2.7.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev