From 4931010619fe2ab499130c6f0cbd36fd7a34a35f Mon Sep 17 00:00:00 2001 From: Jerin Jacob Date: Thu, 23 Apr 2020 00:33:34 +0530 Subject: [PATCH] trace: add alarm tracepoints Add following alarm related trace points. - rte_eal_trace_alarm_set() - rte_eal_trace_alarm_cancel() Signed-off-by: Jerin Jacob Acked-by: David Marchand --- .../common/eal_common_trace_points.c | 8 +++++++ lib/librte_eal/freebsd/eal_alarm.c | 3 +++ lib/librte_eal/include/rte_eal_trace.h | 21 +++++++++++++++++++ lib/librte_eal/linux/eal_alarm.c | 4 ++++ lib/librte_eal/rte_eal_version.map | 2 ++ 5 files changed, 38 insertions(+) diff --git a/lib/librte_eal/common/eal_common_trace_points.c b/lib/librte_eal/common/eal_common_trace_points.c index 29776a3456..08011c2d4f 100644 --- a/lib/librte_eal/common/eal_common_trace_points.c +++ b/lib/librte_eal/common/eal_common_trace_points.c @@ -23,6 +23,9 @@ RTE_TRACE_POINT_DEFINE(rte_eal_trace_generic_ptr); RTE_TRACE_POINT_DEFINE(rte_eal_trace_generic_str); RTE_TRACE_POINT_DEFINE(rte_eal_trace_generic_func); +RTE_TRACE_POINT_DEFINE(rte_eal_trace_alarm_set); +RTE_TRACE_POINT_DEFINE(rte_eal_trace_alarm_cancel); + RTE_INIT(eal_trace_init) { RTE_TRACE_POINT_REGISTER(rte_eal_trace_generic_void, @@ -57,4 +60,9 @@ RTE_INIT(eal_trace_init) lib.eal.generic.string); RTE_TRACE_POINT_REGISTER(rte_eal_trace_generic_func, lib.eal.generic.func); + + RTE_TRACE_POINT_REGISTER(rte_eal_trace_alarm_set, + lib.eal.alarm.set); + RTE_TRACE_POINT_REGISTER(rte_eal_trace_alarm_cancel, + lib.eal.alarm.cancel); } diff --git a/lib/librte_eal/freebsd/eal_alarm.c b/lib/librte_eal/freebsd/eal_alarm.c index 51ea4b8c08..c38b2e04f8 100644 --- a/lib/librte_eal/freebsd/eal_alarm.c +++ b/lib/librte_eal/freebsd/eal_alarm.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "eal_private.h" #include "eal_alarm_private.h" @@ -223,6 +224,7 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg) rte_spinlock_unlock(&alarm_list_lk); + rte_eal_trace_alarm_set(us, cb_fn, cb_arg, ret); return ret; } @@ -310,5 +312,6 @@ rte_eal_alarm_cancel(rte_eal_alarm_callback cb_fn, void *cb_arg) rte_spinlock_unlock(&alarm_list_lk); + rte_eal_trace_alarm_cancel(cb_fn, cb_arg, count); return count; } diff --git a/lib/librte_eal/include/rte_eal_trace.h b/lib/librte_eal/include/rte_eal_trace.h index 67969bf87d..ab521d1b20 100644 --- a/lib/librte_eal/include/rte_eal_trace.h +++ b/lib/librte_eal/include/rte_eal_trace.h @@ -15,6 +15,7 @@ extern "C" { #endif +#include #include /* Generic */ @@ -115,6 +116,26 @@ RTE_TRACE_POINT( #define RTE_EAL_TRACE_GENERIC_FUNC rte_eal_trace_generic_func(__func__) +/* Alarm */ +RTE_TRACE_POINT( + rte_eal_trace_alarm_set, + RTE_TRACE_POINT_ARGS(uint64_t us, rte_eal_alarm_callback cb_fn, + void *cb_arg, int rc), + rte_trace_point_emit_u64(us); + rte_trace_point_emit_ptr(cb_fn); + rte_trace_point_emit_ptr(cb_arg); + rte_trace_point_emit_int(rc); +) + +RTE_TRACE_POINT( + rte_eal_trace_alarm_cancel, + RTE_TRACE_POINT_ARGS(rte_eal_alarm_callback cb_fn, void *cb_arg, + int count), + rte_trace_point_emit_ptr(cb_fn); + rte_trace_point_emit_ptr(cb_arg); + rte_trace_point_emit_int(count); +) + #ifdef __cplusplus } #endif diff --git a/lib/librte_eal/linux/eal_alarm.c b/lib/librte_eal/linux/eal_alarm.c index 0924c9205c..3252c6fa59 100644 --- a/lib/librte_eal/linux/eal_alarm.c +++ b/lib/librte_eal/linux/eal_alarm.c @@ -20,6 +20,8 @@ #include #include #include +#include + #include #ifndef TFD_NONBLOCK @@ -172,6 +174,7 @@ rte_eal_alarm_set(uint64_t us, rte_eal_alarm_callback cb_fn, void *cb_arg) } rte_spinlock_unlock(&alarm_list_lk); + rte_eal_trace_alarm_set(us, cb_fn, cb_arg, ret); return ret; } @@ -240,5 +243,6 @@ rte_eal_alarm_cancel(rte_eal_alarm_callback cb_fn, void *cb_arg) else if (err) rte_errno = err; + rte_eal_trace_alarm_cancel(cb_fn, cb_arg, count); return count; } diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map index 810062f5ad..1e016865a2 100644 --- a/lib/librte_eal/rte_eal_version.map +++ b/lib/librte_eal/rte_eal_version.map @@ -337,6 +337,8 @@ EXPERIMENTAL { rte_thread_is_intr; # added in 20.05 + __rte_eal_trace_alarm_cancel; + __rte_eal_trace_alarm_set; __rte_eal_trace_generic_double; __rte_eal_trace_generic_float; __rte_eal_trace_generic_func; -- 2.20.1