[dpdk-dev] [PATCH v3 05/12] event/octeontx: add event timer stats get and reset

Pavan Nikhilesh pbhagavatula at caviumnetworks.com
Tue Apr 3 17:05:07 CEST 2018


Add functions to get and reset event timer adapter stats.

Signed-off-by: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>
---
 drivers/event/octeontx/timvf_evdev.c | 26 ++++++++++++++++++++++++++
 drivers/event/octeontx/timvf_evdev.h |  1 +
 2 files changed, 27 insertions(+)

diff --git a/drivers/event/octeontx/timvf_evdev.c b/drivers/event/octeontx/timvf_evdev.c
index ccf724115..4db10cdd0 100644
--- a/drivers/event/octeontx/timvf_evdev.c
+++ b/drivers/event/octeontx/timvf_evdev.c
@@ -281,12 +281,38 @@ timvf_ring_free(struct rte_event_timer_adapter *adptr)
 	return 0;
 }
 
+
+static int
+timvf_stats_get(const struct rte_event_timer_adapter *adapter,
+		struct rte_event_timer_adapter_stats *stats)
+{
+	struct timvf_ring *timr = adapter->data->adapter_priv;
+	uint64_t bkt_cyc = rte_rdtsc() - timr->meta.ring_start_cyc;
+
+	stats->evtim_exp_count = timr->meta.tim_arm_cnt;
+	stats->ev_enq_count = timr->meta.tim_arm_cnt;
+	stats->adapter_tick_count = rte_reciprocal_divide_u64(bkt_cyc,
+				&timr->meta.fast_div);
+	return 0;
+}
+
+static int
+timvf_stats_reset(const struct rte_event_timer_adapter *adapter)
+{
+	struct timvf_ring *timr = adapter->data->adapter_priv;
+
+	timr->meta.tim_arm_cnt = 0;
+	return 0;
+}
+
 static struct rte_event_timer_adapter_ops timvf_ops = {
 		.init		= timvf_ring_create,
 		.uninit		= timvf_ring_free,
 		.start		= timvf_ring_start,
 		.stop		= timvf_ring_stop,
 		.get_info	= timvf_ring_info_get,
+		.stats_get	= timvf_stats_get,
+		.stats_reset	= timvf_stats_reset,
 };
 
 int
diff --git a/drivers/event/octeontx/timvf_evdev.h b/drivers/event/octeontx/timvf_evdev.h
index e155b6ce2..e98ab631a 100644
--- a/drivers/event/octeontx/timvf_evdev.h
+++ b/drivers/event/octeontx/timvf_evdev.h
@@ -145,6 +145,7 @@ struct timvf_meta {
 	struct tim_mem_bucket *bkt;
 	void *chunk_pool;
 	uint64_t tck_int;
+	volatile uint64_t tim_arm_cnt;
 };
 
 struct timvf_ring {
-- 
2.16.3



More information about the dev mailing list