We have been testing the rebalance code in different situations while having traffic going through OVS. Those tests have shown that part of the observed packets losses is due to some time wasted in signaling/waiting for the pmd threads to reload their polling configurations.
This series is an attempt at getting pmd threads reloads quicker and more deterministic. Example of number of cycles spent by a pmd between two polling configurations (in cycles minimum/average/maximum of 1000 changes): - cfc06fb13d9c: 141059/332512/6230137 - patch1: 146114/279722/ 721557 - patch2: 46118/176561/ 459963 - patch3: 13878/124914/ 509629 - patch4: 12980/157706/ 509447 - patch5: 12945/ 17715/ 45592 Changelog since v3: - explicitly do not wait for non pmd reload in patch 2 - added Eelco acks Changelog since v2: - remove unneeded synchronisation on pmd thread join in patch 2 Changelog since v1: - incorporated Ilya suggestions in patch 2 and 3 - dropped previous acks on patch 2 and 3 but kept them on patch 4 and 5 since there is no major change in them Changelog since RFC v2: - added ack from Eelco Changelog since RFC v1: - added numbers per patch in cover letter - added memory ordering for explicit synchronisations between threads in patch 1 and patch 2 -- David Marchand David Marchand (5): dpif-netdev: Convert exit latch to flag. dpif-netdev: Trigger parallel pmd reloads. dpif-netdev: Do not sleep when swapping queues. dpif-netdev: Only reload static tx qid when needed. dpif-netdev: Catch reloads faster. lib/dpif-netdev.c | 109 +++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 75 insertions(+), 34 deletions(-) -- 1.8.3.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
