[ovs-dev] [PATCH v4 0/5] Quicker pmd threads reloads

David Marchand david.marchand at redhat.com
Tue Jul 9 16:19:53 UTC 2019


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



More information about the dev mailing list