[ovs-dev] [v6 08/11] dpif/stats: add miniflow extract opt hits counter
Amber, Kumar
kumar.amber at intel.com
Thu Jul 8 09:35:51 UTC 2021
Hi Eelco,
>
> Flavio asked to also update the man page, lib/dpif-netdev-unixctl.man, but I do
> not see the changes here.
>
It's there lib/dpif-netdev-unixctl.man | 1 + .
> > ---
> >
> > v5:
> > - fix review comments(Ian, Flavio, Eelco)
> > ---
> > ---
> > lib/dpif-netdev-avx512.c | 2 ++
> > lib/dpif-netdev-perf.c | 3 +++
> > lib/dpif-netdev-perf.h | 1 +
> > lib/dpif-netdev-unixctl.man | 1 +
> > lib/dpif-netdev.c | 16 ++++++++++------
> > tests/pmd.at | 6 ++++--
> > 6 files changed, 21 insertions(+), 8 deletions(-)
> >
> > diff --git a/lib/dpif-netdev-avx512.c b/lib/dpif-netdev-avx512.c index
> > 91fad92db..645b4c9b4 100644
> > --- a/lib/dpif-netdev-avx512.c
> > +++ b/lib/dpif-netdev-avx512.c
> > @@ -311,8 +311,10 @@ dp_netdev_input_outer_avx512(struct
> dp_netdev_pmd_thread *pmd,
> > }
> >
> > /* At this point we don't return error anymore, so commit stats
> > here. */
> > + uint32_t mfex_hit = __builtin_popcountll(mf_mask);
>
> As mentioned (and asked by you guys) this should change to
> mfex_hits/mfex_hit_cnt to avoid re-definition of an earlier variable.
>
Fixed .
> > pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_RECV,
> batch_size);
> > pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_PHWOL_HIT,
> > phwol_hits);
> > + pmd_perf_update_counter(&pmd->perf_stats,
> PMD_STAT_MFEX_OPT_HIT,
> > + mfex_hit);
> > pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_EXACT_HIT,
> emc_hits);
> > pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_SMC_HIT,
> smc_hits);
> > pmd_perf_update_counter(&pmd->perf_stats, PMD_STAT_MASKED_HIT,
> > diff --git a/lib/dpif-netdev-perf.c b/lib/dpif-netdev-perf.c index
> > 7103a2d4d..d7676ea2b 100644
> > --- a/lib/dpif-netdev-perf.c
> > +++ b/lib/dpif-netdev-perf.c
> > @@ -247,6 +247,7 @@ pmd_perf_format_overall_stats(struct ds *str, struct
> pmd_perf_stats *s,
> > " Rx packets: %12"PRIu64" (%.0f Kpps, %.0f cycles/pkt)\n"
> > " Datapath passes: %12"PRIu64" (%.2f passes/pkt)\n"
> > " - PHWOL hits: %12"PRIu64" (%5.1f %%)\n"
> > + " - MFEX Opt hits: %12"PRIu64" (%5.1f %%)\n"
> > " - EMC hits: %12"PRIu64" (%5.1f %%)\n"
> > " - SMC hits: %12"PRIu64" (%5.1f %%)\n"
> > " - Megaflow hits: %12"PRIu64" (%5.1f %%, %.2f "
> > @@ -258,6 +259,8 @@ pmd_perf_format_overall_stats(struct ds *str, struct
> pmd_perf_stats *s,
> > passes, rx_packets ? 1.0 * passes / rx_packets : 0,
> > stats[PMD_STAT_PHWOL_HIT],
> > 100.0 * stats[PMD_STAT_PHWOL_HIT] / passes,
> > + stats[PMD_STAT_MFEX_OPT_HIT],
> > + 100.0 * stats[PMD_STAT_MFEX_OPT_HIT] / passes,
> > stats[PMD_STAT_EXACT_HIT],
> > 100.0 * stats[PMD_STAT_EXACT_HIT] / passes,
> > stats[PMD_STAT_SMC_HIT],
> > diff --git a/lib/dpif-netdev-perf.h b/lib/dpif-netdev-perf.h index
> > 8b1a52387..834c26260 100644
> > --- a/lib/dpif-netdev-perf.h
> > +++ b/lib/dpif-netdev-perf.h
> > @@ -57,6 +57,7 @@ extern "C" {
> >
> > enum pmd_stat_type {
> > PMD_STAT_PHWOL_HIT, /* Packets that had a partial HWOL hit (phwol).
> */
> > + PMD_STAT_MFEX_OPT_HIT, /* Packets that had miniflow optimized
> > + match. */
> > PMD_STAT_EXACT_HIT, /* Packets that had an exact match (emc). */
> > PMD_STAT_SMC_HIT, /* Packets that had a sig match hit (SMC). */
> > PMD_STAT_MASKED_HIT, /* Packets that matched in the flow table. */
> > diff --git a/lib/dpif-netdev-unixctl.man b/lib/dpif-netdev-unixctl.man
> > index 83ce4f1c5..f2e536c15 100644
> > --- a/lib/dpif-netdev-unixctl.man
> > +++ b/lib/dpif-netdev-unixctl.man
> > @@ -136,6 +136,7 @@ pmd thread numa_id 0 core_id 1:
> > Rx packets: 2399607 (2381 Kpps, 848 cycles/pkt)
> > Datapath passes: 3599415 (1.50 passes/pkt)
> > - PHWOL hits: 0 ( 0.0 %)
> > + - MFEX Opt hits: 4570133 ( 99.5 %)
>
> Can we put a realistic number here, as we have more hits than datapath passes?
>
Fixed.
> > - EMC hits: 336472 ( 9.3 %)
> > 2.32.0
Regards
Amber
More information about the dev
mailing list