Hi Billy Maybe you need to rebase your branch; this patch was applied a couple weeks ago.
Thanks Darrell On 9/22/17, 6:47 AM, "Billy O'Mahony" <[email protected]> wrote: From: Ilya Maximets <[email protected]> DP_STAT_LOOKUP_HIT statistics used mistakenly for calculation of total number of packets. This leads to completely wrong per packet cycles statistics. For example: emc hits:0 megaflow hits:253702308 avg. subtable lookups per hit:1.50 miss:0 lost:0 avg cycles per packet: 248.32 (157498766585/634255770) In this case 634255770 total_packets value used for avg per packet calculation: total_packets = 'megaflow hits' + 'megaflow hits' * 1.5 The real value should be 524.38 (157498766585/253702308) Fix that by summing only stats that reflects match/not match. It's decided to make direct summing of required values instead of disabling some stats in a loop to make calculations more clear and avoid similar issues in the future. CC: Jan Scheurich <[email protected]> Fixes: 3453b4d62a98 ("dpif-netdev: dpcls per in_port with sorted subtables") Signed-off-by: Ilya Maximets <[email protected]> Acked-by: Jan Scheurich <[email protected]> --- lib/dpif-netdev.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index 071ec14..e3a5590 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -796,7 +796,7 @@ pmd_info_show_stats(struct ds *reply, unsigned long long stats[DP_N_STATS], uint64_t cycles[PMD_N_CYCLES]) { - unsigned long long total_packets = 0; + unsigned long long total_packets; uint64_t total_cycles = 0; int i; @@ -812,13 +812,12 @@ pmd_info_show_stats(struct ds *reply, } else { stats[i] = 0; } - - if (i != DP_STAT_LOST) { - /* Lost packets are already included in DP_STAT_MISS */ - total_packets += stats[i]; - } } + /* Sum of all the matched and not matched packets gives the total. */ + total_packets = stats[DP_STAT_EXACT_HIT] + stats[DP_STAT_MASKED_HIT] + + stats[DP_STAT_MISS]; + for (i = 0; i < PMD_N_CYCLES; i++) { if (cycles[i] > pmd->cycles_zero[i]) { cycles[i] -= pmd->cycles_zero[i]; -- 2.7.4 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
