[ovs-dev] [v6 08/11] dpif/stats: add miniflow extract opt hits counter
Eelco Chaudron
echaudro at redhat.com
Thu Jul 8 10:36:48 UTC 2021
On 8 Jul 2021, at 11:35, Amber, Kumar wrote:
> 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 + .
Guess Flavio wanted not just to add MFEX to the output, but also to explain what it represents.
>>> ---
>>>
>>> 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