We used to count exact match cache hits and masked classifier hits together. This commit splits the DP_STAT_HIT counter into two. This change will be used by future commits.
Signed-off-by: Daniele Di Proietto <diproiet...@vmware.com> --- lib/dpif-netdev.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c index a882e9c..8f267f6 100644 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@ -220,7 +220,8 @@ static struct dp_netdev_port *dp_netdev_lookup_port(const struct dp_netdev *dp, odp_port_t); enum dp_stat_type { - DP_STAT_HIT, /* Packets that matched in the flow table. */ + DP_STAT_EXACT_HIT, /* Packets that had an exact match (emc). */ + DP_STAT_MASKED_HIT, /* Packets that matched in the flow table. */ DP_STAT_MISS, /* Packets that did not match. */ DP_STAT_LOST, /* Packets not passed up to the client. */ DP_N_STATS @@ -757,7 +758,9 @@ dpif_netdev_get_stats(const struct dpif *dpif, struct dpif_dp_stats *stats) unsigned long long n; stats->n_flows += cmap_count(&pmd->flow_table); - atomic_read_relaxed(&pmd->stats.n[DP_STAT_HIT], &n); + atomic_read_relaxed(&pmd->stats.n[DP_STAT_MASKED_HIT], &n); + stats->n_hit += n; + atomic_read_relaxed(&pmd->stats.n[DP_STAT_EXACT_HIT], &n); stats->n_hit += n; atomic_read_relaxed(&pmd->stats.n[DP_STAT_MISS], &n); stats->n_missed += n; @@ -2807,7 +2810,8 @@ packet_batch_init(struct packet_batch *batch, struct dp_netdev_flow *flow) static inline void packet_batch_execute(struct packet_batch *batch, - struct dp_netdev_pmd_thread *pmd) + struct dp_netdev_pmd_thread *pmd, + enum dp_stat_type hit_type) { struct dp_netdev_actions *actions; struct dp_netdev_flow *flow = batch->flow; @@ -2820,7 +2824,7 @@ packet_batch_execute(struct packet_batch *batch, dp_netdev_execute_actions(pmd, batch->packets, batch->packet_count, true, actions->actions, actions->size); - dp_netdev_count_packet(pmd, DP_STAT_HIT, batch->packet_count); + dp_netdev_count_packet(pmd, hit_type, batch->packet_count); } static inline bool @@ -2911,7 +2915,7 @@ emc_processing(struct dp_netdev_pmd_thread *pmd, struct dp_packet **packets, } for (i = 0; i < n_batches; i++) { - packet_batch_execute(&batches[i], pmd); + packet_batch_execute(&batches[i], pmd, DP_STAT_EXACT_HIT); } return notfound_cnt; @@ -3048,7 +3052,7 @@ fast_path_processing(struct dp_netdev_pmd_thread *pmd, } for (i = 0; i < n_batches; i++) { - packet_batch_execute(&batches[i], pmd); + packet_batch_execute(&batches[i], pmd, DP_STAT_MASKED_HIT); } } -- 2.1.4 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev