Message ID | 1556626682-28858-6-git-send-email-david.marchand@redhat.com |
---|---|
State | Changes Requested |
Headers | show |
Series | Quicker pmd threads reloads | expand |
On 30 Apr 2019, at 14:18, David Marchand wrote: > Looking at the reload flag only every 1024 loops can be a long time > under load, since we might be handling 32 packets per iteration, which > means 32k packets. > Look at the flag every loop, no major performance impact seen. > > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > lib/dpif-netdev.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c > index 45993a3..d8018af 100644 > --- a/lib/dpif-netdev.c > +++ b/lib/dpif-netdev.c > @@ -5482,7 +5482,6 @@ reload: > poll_block(); > } > } > - lc = UINT_MAX; > } > > pmd->intrvl_tsc_prev = 0; > @@ -5526,12 +5525,13 @@ reload: > if (!ovsrcu_try_quiesce()) { > emc_cache_slow_sweep(&((pmd->flow_cache).emc_cache)); > } > + } > > - atomic_read_relaxed(&pmd->reload, &reload); > - if (reload) { > - break; > - } > + atomic_read_relaxed(&pmd->reload, &reload); Would be interesting to see if there is any impact when change to none relaxed? > + if (OVS_UNLIKELY(reload)) { > + break; > } > + > pmd_perf_end_iteration(s, rx_packets, tx_packets, > pmd_perf_metrics_enabled(pmd)); > } > -- > 1.8.3.1
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 45993a3..d8018af 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -5482,7 +5482,6 @@ reload: poll_block(); } } - lc = UINT_MAX; } pmd->intrvl_tsc_prev = 0; @@ -5526,12 +5525,13 @@ reload: if (!ovsrcu_try_quiesce()) { emc_cache_slow_sweep(&((pmd->flow_cache).emc_cache)); } + } - atomic_read_relaxed(&pmd->reload, &reload); - if (reload) { - break; - } + atomic_read_relaxed(&pmd->reload, &reload); + if (OVS_UNLIKELY(reload)) { + break; } + pmd_perf_end_iteration(s, rx_packets, tx_packets, pmd_perf_metrics_enabled(pmd)); }
Looking at the reload flag only every 1024 loops can be a long time under load, since we might be handling 32 packets per iteration, which means 32k packets. Look at the flag every loop, no major performance impact seen. Signed-off-by: David Marchand <david.marchand@redhat.com> --- lib/dpif-netdev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)