145a685caSAnkur Dwivedi /* SPDX-License-Identifier: BSD-3-Clause 245a685caSAnkur Dwivedi * Copyright(C) 2023 Marvell International Ltd. 345a685caSAnkur Dwivedi */ 445a685caSAnkur Dwivedi 545a685caSAnkur Dwivedi #ifndef EAL_TRACE_INTERNAL_H 645a685caSAnkur Dwivedi #define EAL_TRACE_INTERNAL_H 745a685caSAnkur Dwivedi 845a685caSAnkur Dwivedi /** 945a685caSAnkur Dwivedi * @file 1045a685caSAnkur Dwivedi * 1145a685caSAnkur Dwivedi * API for EAL trace support 1245a685caSAnkur Dwivedi */ 1345a685caSAnkur Dwivedi 1445a685caSAnkur Dwivedi #include <rte_alarm.h> 1545a685caSAnkur Dwivedi #include <rte_interrupts.h> 1645a685caSAnkur Dwivedi #include <rte_trace_point.h> 1745a685caSAnkur Dwivedi 1845a685caSAnkur Dwivedi #include "eal_interrupts.h" 1945a685caSAnkur Dwivedi 20*719834a6SMattias Rönnblom #ifdef __cplusplus 21*719834a6SMattias Rönnblom extern "C" { 22*719834a6SMattias Rönnblom #endif 23*719834a6SMattias Rönnblom 2445a685caSAnkur Dwivedi /* Alarm */ 2545a685caSAnkur Dwivedi RTE_TRACE_POINT( 2645a685caSAnkur Dwivedi rte_eal_trace_alarm_set, 2745a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(uint64_t us, rte_eal_alarm_callback cb_fn, 2845a685caSAnkur Dwivedi void *cb_arg, int rc), 2945a685caSAnkur Dwivedi rte_trace_point_emit_u64(us); 3045a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb_fn); 3145a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb_arg); 3245a685caSAnkur Dwivedi rte_trace_point_emit_int(rc); 3345a685caSAnkur Dwivedi ) 3445a685caSAnkur Dwivedi 3545a685caSAnkur Dwivedi RTE_TRACE_POINT( 3645a685caSAnkur Dwivedi rte_eal_trace_alarm_cancel, 3745a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(rte_eal_alarm_callback cb_fn, void *cb_arg, 3845a685caSAnkur Dwivedi int count), 3945a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb_fn); 4045a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb_arg); 4145a685caSAnkur Dwivedi rte_trace_point_emit_int(count); 4245a685caSAnkur Dwivedi ) 4345a685caSAnkur Dwivedi 4445a685caSAnkur Dwivedi /* Interrupt */ 4545a685caSAnkur Dwivedi RTE_TRACE_POINT( 4645a685caSAnkur Dwivedi rte_eal_trace_intr_callback_register, 4745a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, 4845a685caSAnkur Dwivedi rte_intr_callback_fn cb, void *cb_arg, int rc), 4945a685caSAnkur Dwivedi rte_trace_point_emit_int(rc); 5045a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->dev_fd); 5145a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->fd); 5245a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->type); 5345a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->max_intr); 5445a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->nb_efd); 5545a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb); 5645a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb_arg); 5745a685caSAnkur Dwivedi ) 5845a685caSAnkur Dwivedi RTE_TRACE_POINT( 5945a685caSAnkur Dwivedi rte_eal_trace_intr_callback_unregister, 6045a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, 6145a685caSAnkur Dwivedi rte_intr_callback_fn cb, void *cb_arg, int rc), 6245a685caSAnkur Dwivedi rte_trace_point_emit_int(rc); 6345a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->dev_fd); 6445a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->fd); 6545a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->type); 6645a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->max_intr); 6745a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->nb_efd); 6845a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb); 6945a685caSAnkur Dwivedi rte_trace_point_emit_ptr(cb_arg); 7045a685caSAnkur Dwivedi ) 7145a685caSAnkur Dwivedi RTE_TRACE_POINT( 7245a685caSAnkur Dwivedi rte_eal_trace_intr_enable, 7345a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc), 7445a685caSAnkur Dwivedi rte_trace_point_emit_int(rc); 7545a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->dev_fd); 7645a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->fd); 7745a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->type); 7845a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->max_intr); 7945a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->nb_efd); 8045a685caSAnkur Dwivedi ) 8145a685caSAnkur Dwivedi RTE_TRACE_POINT( 8245a685caSAnkur Dwivedi rte_eal_trace_intr_disable, 8345a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc), 8445a685caSAnkur Dwivedi rte_trace_point_emit_int(rc); 8545a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->dev_fd); 8645a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->fd); 8745a685caSAnkur Dwivedi rte_trace_point_emit_int(handle->type); 8845a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->max_intr); 8945a685caSAnkur Dwivedi rte_trace_point_emit_u32(handle->nb_efd); 9045a685caSAnkur Dwivedi ) 9145a685caSAnkur Dwivedi 9245a685caSAnkur Dwivedi /* Memory */ 9345a685caSAnkur Dwivedi RTE_TRACE_POINT( 9445a685caSAnkur Dwivedi rte_eal_trace_mem_zmalloc, 9545a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align, 9645a685caSAnkur Dwivedi int socket, void *ptr), 9745a685caSAnkur Dwivedi rte_trace_point_emit_string(type); 9845a685caSAnkur Dwivedi rte_trace_point_emit_size_t(size); 9945a685caSAnkur Dwivedi rte_trace_point_emit_u32(align); 10045a685caSAnkur Dwivedi rte_trace_point_emit_int(socket); 10145a685caSAnkur Dwivedi rte_trace_point_emit_ptr(ptr); 10245a685caSAnkur Dwivedi ) 10345a685caSAnkur Dwivedi 10445a685caSAnkur Dwivedi RTE_TRACE_POINT( 10545a685caSAnkur Dwivedi rte_eal_trace_mem_malloc, 10645a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align, 10745a685caSAnkur Dwivedi int socket, void *ptr), 10845a685caSAnkur Dwivedi rte_trace_point_emit_string(type); 10945a685caSAnkur Dwivedi rte_trace_point_emit_size_t(size); 11045a685caSAnkur Dwivedi rte_trace_point_emit_u32(align); 11145a685caSAnkur Dwivedi rte_trace_point_emit_int(socket); 11245a685caSAnkur Dwivedi rte_trace_point_emit_ptr(ptr); 11345a685caSAnkur Dwivedi ) 11445a685caSAnkur Dwivedi 11545a685caSAnkur Dwivedi RTE_TRACE_POINT( 11645a685caSAnkur Dwivedi rte_eal_trace_mem_realloc, 11745a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(size_t size, unsigned int align, int socket, 11845a685caSAnkur Dwivedi void *ptr), 11945a685caSAnkur Dwivedi rte_trace_point_emit_size_t(size); 12045a685caSAnkur Dwivedi rte_trace_point_emit_u32(align); 12145a685caSAnkur Dwivedi rte_trace_point_emit_int(socket); 12245a685caSAnkur Dwivedi rte_trace_point_emit_ptr(ptr); 12345a685caSAnkur Dwivedi ) 12445a685caSAnkur Dwivedi 12545a685caSAnkur Dwivedi RTE_TRACE_POINT( 12645a685caSAnkur Dwivedi rte_eal_trace_mem_free, 12745a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(void *ptr), 12845a685caSAnkur Dwivedi rte_trace_point_emit_ptr(ptr); 12945a685caSAnkur Dwivedi ) 13045a685caSAnkur Dwivedi 13145a685caSAnkur Dwivedi /* Memzone */ 13245a685caSAnkur Dwivedi RTE_TRACE_POINT( 13345a685caSAnkur Dwivedi rte_eal_trace_memzone_reserve, 13445a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const char *name, size_t len, int socket_id, 13545a685caSAnkur Dwivedi unsigned int flags, unsigned int align, unsigned int bound, 13645a685caSAnkur Dwivedi const void *mz), 13745a685caSAnkur Dwivedi rte_trace_point_emit_string(name); 13845a685caSAnkur Dwivedi rte_trace_point_emit_size_t(len); 13945a685caSAnkur Dwivedi rte_trace_point_emit_int(socket_id); 14045a685caSAnkur Dwivedi rte_trace_point_emit_u32(flags); 14145a685caSAnkur Dwivedi rte_trace_point_emit_u32(align); 14245a685caSAnkur Dwivedi rte_trace_point_emit_u32(bound); 14345a685caSAnkur Dwivedi rte_trace_point_emit_ptr(mz); 14445a685caSAnkur Dwivedi ) 14545a685caSAnkur Dwivedi 14645a685caSAnkur Dwivedi RTE_TRACE_POINT( 14745a685caSAnkur Dwivedi rte_eal_trace_memzone_lookup, 14845a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const char *name, const void *memzone), 14945a685caSAnkur Dwivedi rte_trace_point_emit_string(name); 15045a685caSAnkur Dwivedi rte_trace_point_emit_ptr(memzone); 15145a685caSAnkur Dwivedi ) 15245a685caSAnkur Dwivedi 15345a685caSAnkur Dwivedi RTE_TRACE_POINT( 15445a685caSAnkur Dwivedi rte_eal_trace_memzone_free, 15545a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(const char *name, void *addr, int rc), 15645a685caSAnkur Dwivedi rte_trace_point_emit_string(name); 15745a685caSAnkur Dwivedi rte_trace_point_emit_ptr(addr); 15845a685caSAnkur Dwivedi rte_trace_point_emit_int(rc); 15945a685caSAnkur Dwivedi ) 16045a685caSAnkur Dwivedi 16145a685caSAnkur Dwivedi /* Thread */ 16245a685caSAnkur Dwivedi RTE_TRACE_POINT( 16345a685caSAnkur Dwivedi rte_eal_trace_thread_remote_launch, 16445a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(int (*f)(void *), void *arg, 16545a685caSAnkur Dwivedi unsigned int worker_id, int rc), 16645a685caSAnkur Dwivedi rte_trace_point_emit_ptr(f); 16745a685caSAnkur Dwivedi rte_trace_point_emit_ptr(arg); 16845a685caSAnkur Dwivedi rte_trace_point_emit_u32(worker_id); 16945a685caSAnkur Dwivedi rte_trace_point_emit_int(rc); 17045a685caSAnkur Dwivedi ) 17145a685caSAnkur Dwivedi RTE_TRACE_POINT( 17245a685caSAnkur Dwivedi rte_eal_trace_thread_lcore_ready, 17345a685caSAnkur Dwivedi RTE_TRACE_POINT_ARGS(unsigned int lcore_id, const char *cpuset), 17445a685caSAnkur Dwivedi rte_trace_point_emit_u32(lcore_id); 17545a685caSAnkur Dwivedi rte_trace_point_emit_string(cpuset); 17645a685caSAnkur Dwivedi ) 177841e87dfSArnaud Fiorini RTE_TRACE_POINT( 178841e87dfSArnaud Fiorini rte_eal_trace_thread_lcore_running, 179841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int lcore_id, void *f), 180841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 181841e87dfSArnaud Fiorini rte_trace_point_emit_ptr(f); 182841e87dfSArnaud Fiorini ) 183841e87dfSArnaud Fiorini RTE_TRACE_POINT( 184841e87dfSArnaud Fiorini rte_eal_trace_thread_lcore_stopped, 185841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int lcore_id), 186841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 187841e87dfSArnaud Fiorini ) 188841e87dfSArnaud Fiorini 189841e87dfSArnaud Fiorini /* Service */ 190841e87dfSArnaud Fiorini RTE_TRACE_POINT( 191841e87dfSArnaud Fiorini rte_eal_trace_service_map_lcore, 192841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id, unsigned int enabled), 193841e87dfSArnaud Fiorini rte_trace_point_emit_u32(id); 194841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 195841e87dfSArnaud Fiorini rte_trace_point_emit_u32(enabled); 196841e87dfSArnaud Fiorini ) 197841e87dfSArnaud Fiorini RTE_TRACE_POINT( 198841e87dfSArnaud Fiorini rte_eal_trace_service_lcore_state_change, 199841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int lcore_id, int lcore_state), 200841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 201841e87dfSArnaud Fiorini rte_trace_point_emit_i32(lcore_state); 202841e87dfSArnaud Fiorini ) 203841e87dfSArnaud Fiorini RTE_TRACE_POINT( 204841e87dfSArnaud Fiorini rte_eal_trace_service_lcore_start, 205841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int lcore_id), 206841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 207841e87dfSArnaud Fiorini ) 208841e87dfSArnaud Fiorini RTE_TRACE_POINT( 209841e87dfSArnaud Fiorini rte_eal_trace_service_lcore_stop, 210841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int lcore_id), 211841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 212841e87dfSArnaud Fiorini ) 213841e87dfSArnaud Fiorini RTE_TRACE_POINT( 214841e87dfSArnaud Fiorini rte_eal_trace_service_run_begin, 215841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id), 216841e87dfSArnaud Fiorini rte_trace_point_emit_u32(id); 217841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 218841e87dfSArnaud Fiorini ) 219841e87dfSArnaud Fiorini RTE_TRACE_POINT( 220841e87dfSArnaud Fiorini rte_eal_trace_service_runstate_set, 221841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int run_state), 222841e87dfSArnaud Fiorini rte_trace_point_emit_u32(id); 223841e87dfSArnaud Fiorini rte_trace_point_emit_u32(run_state); 224841e87dfSArnaud Fiorini ) 225841e87dfSArnaud Fiorini RTE_TRACE_POINT( 226841e87dfSArnaud Fiorini rte_eal_trace_service_run_end, 227841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id), 228841e87dfSArnaud Fiorini rte_trace_point_emit_u32(id); 229841e87dfSArnaud Fiorini rte_trace_point_emit_u32(lcore_id); 230841e87dfSArnaud Fiorini ) 231841e87dfSArnaud Fiorini RTE_TRACE_POINT( 232841e87dfSArnaud Fiorini rte_eal_trace_service_component_register, 233841e87dfSArnaud Fiorini RTE_TRACE_POINT_ARGS(int id, const char *service_name), 234841e87dfSArnaud Fiorini rte_trace_point_emit_i32(id); 235841e87dfSArnaud Fiorini rte_trace_point_emit_string(service_name); 236841e87dfSArnaud Fiorini ) 23745a685caSAnkur Dwivedi 23845a685caSAnkur Dwivedi #ifdef __cplusplus 23945a685caSAnkur Dwivedi } 24045a685caSAnkur Dwivedi #endif 24145a685caSAnkur Dwivedi 24245a685caSAnkur Dwivedi #endif /* EAL_TRACE_INTERNAL_H */ 243