net/mlx5e: Add channel events counter
[sfrench/cifs-2.6.git] / drivers / net / ethernet / mellanox / mlx5 / core / en_txrx.c
index 1b17f682693b90b09300fcf92fd7ed74aa29fef5..4e1f99a98d5dd35c835f8af2863dc9cd4d6e7635 100644 (file)
@@ -74,10 +74,13 @@ int mlx5e_napi_poll(struct napi_struct *napi, int budget)
 {
        struct mlx5e_channel *c = container_of(napi, struct mlx5e_channel,
                                               napi);
+       struct mlx5e_ch_stats *ch_stats = c->stats;
        bool busy = false;
        int work_done = 0;
        int i;
 
+       ch_stats->poll++;
+
        for (i = 0; i < c->num_tc; i++)
                busy |= mlx5e_poll_tx_cq(&c->sq[i].cq, budget);
 
@@ -94,6 +97,7 @@ int mlx5e_napi_poll(struct napi_struct *napi, int budget)
        if (busy) {
                if (likely(mlx5e_channel_no_affinity_change(c)))
                        return budget;
+               ch_stats->aff_change++;
                if (budget && work_done == budget)
                        work_done--;
        }
@@ -101,6 +105,8 @@ int mlx5e_napi_poll(struct napi_struct *napi, int budget)
        if (unlikely(!napi_complete_done(napi, work_done)))
                return work_done;
 
+       ch_stats->arm++;
+
        for (i = 0; i < c->num_tc; i++) {
                mlx5e_handle_tx_dim(&c->sq[i]);
                mlx5e_cq_arm(&c->sq[i].cq);
@@ -118,8 +124,9 @@ void mlx5e_completion_event(struct mlx5_core_cq *mcq)
 {
        struct mlx5e_cq *cq = container_of(mcq, struct mlx5e_cq, mcq);
 
-       cq->event_ctr++;
        napi_schedule(cq->napi);
+       cq->event_ctr++;
+       cq->channel->stats->events++;
 }
 
 void mlx5e_cq_error_event(struct mlx5_core_cq *mcq, enum mlx5_event event)