1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(C) 2023 Marvell International Ltd. 3 */ 4 5 #ifndef EAL_TRACE_INTERNAL_H 6 #define EAL_TRACE_INTERNAL_H 7 8 /** 9 * @file 10 * 11 * API for EAL trace support 12 */ 13 14 #include <rte_alarm.h> 15 #include <rte_interrupts.h> 16 #include <rte_trace_point.h> 17 18 #include "eal_interrupts.h" 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 /* Alarm */ 25 RTE_TRACE_POINT( 26 rte_eal_trace_alarm_set, 27 RTE_TRACE_POINT_ARGS(uint64_t us, rte_eal_alarm_callback cb_fn, 28 void *cb_arg, int rc), 29 rte_trace_point_emit_u64(us); 30 rte_trace_point_emit_ptr(cb_fn); 31 rte_trace_point_emit_ptr(cb_arg); 32 rte_trace_point_emit_int(rc); 33 ) 34 35 RTE_TRACE_POINT( 36 rte_eal_trace_alarm_cancel, 37 RTE_TRACE_POINT_ARGS(rte_eal_alarm_callback cb_fn, void *cb_arg, 38 int count), 39 rte_trace_point_emit_ptr(cb_fn); 40 rte_trace_point_emit_ptr(cb_arg); 41 rte_trace_point_emit_int(count); 42 ) 43 44 /* Interrupt */ 45 RTE_TRACE_POINT( 46 rte_eal_trace_intr_callback_register, 47 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, 48 rte_intr_callback_fn cb, void *cb_arg, int rc), 49 rte_trace_point_emit_int(rc); 50 rte_trace_point_emit_int(handle->dev_fd); 51 rte_trace_point_emit_int(handle->fd); 52 rte_trace_point_emit_int(handle->type); 53 rte_trace_point_emit_u32(handle->max_intr); 54 rte_trace_point_emit_u32(handle->nb_efd); 55 rte_trace_point_emit_ptr(cb); 56 rte_trace_point_emit_ptr(cb_arg); 57 ) 58 RTE_TRACE_POINT( 59 rte_eal_trace_intr_callback_unregister, 60 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, 61 rte_intr_callback_fn cb, void *cb_arg, int rc), 62 rte_trace_point_emit_int(rc); 63 rte_trace_point_emit_int(handle->dev_fd); 64 rte_trace_point_emit_int(handle->fd); 65 rte_trace_point_emit_int(handle->type); 66 rte_trace_point_emit_u32(handle->max_intr); 67 rte_trace_point_emit_u32(handle->nb_efd); 68 rte_trace_point_emit_ptr(cb); 69 rte_trace_point_emit_ptr(cb_arg); 70 ) 71 RTE_TRACE_POINT( 72 rte_eal_trace_intr_enable, 73 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc), 74 rte_trace_point_emit_int(rc); 75 rte_trace_point_emit_int(handle->dev_fd); 76 rte_trace_point_emit_int(handle->fd); 77 rte_trace_point_emit_int(handle->type); 78 rte_trace_point_emit_u32(handle->max_intr); 79 rte_trace_point_emit_u32(handle->nb_efd); 80 ) 81 RTE_TRACE_POINT( 82 rte_eal_trace_intr_disable, 83 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc), 84 rte_trace_point_emit_int(rc); 85 rte_trace_point_emit_int(handle->dev_fd); 86 rte_trace_point_emit_int(handle->fd); 87 rte_trace_point_emit_int(handle->type); 88 rte_trace_point_emit_u32(handle->max_intr); 89 rte_trace_point_emit_u32(handle->nb_efd); 90 ) 91 92 /* Memory */ 93 RTE_TRACE_POINT( 94 rte_eal_trace_mem_zmalloc, 95 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align, 96 int socket, void *ptr), 97 rte_trace_point_emit_string(type); 98 rte_trace_point_emit_size_t(size); 99 rte_trace_point_emit_u32(align); 100 rte_trace_point_emit_int(socket); 101 rte_trace_point_emit_ptr(ptr); 102 ) 103 104 RTE_TRACE_POINT( 105 rte_eal_trace_mem_malloc, 106 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align, 107 int socket, void *ptr), 108 rte_trace_point_emit_string(type); 109 rte_trace_point_emit_size_t(size); 110 rte_trace_point_emit_u32(align); 111 rte_trace_point_emit_int(socket); 112 rte_trace_point_emit_ptr(ptr); 113 ) 114 115 RTE_TRACE_POINT( 116 rte_eal_trace_mem_realloc, 117 RTE_TRACE_POINT_ARGS(size_t size, unsigned int align, int socket, 118 void *ptr), 119 rte_trace_point_emit_size_t(size); 120 rte_trace_point_emit_u32(align); 121 rte_trace_point_emit_int(socket); 122 rte_trace_point_emit_ptr(ptr); 123 ) 124 125 RTE_TRACE_POINT( 126 rte_eal_trace_mem_free, 127 RTE_TRACE_POINT_ARGS(void *ptr), 128 rte_trace_point_emit_ptr(ptr); 129 ) 130 131 /* Memzone */ 132 RTE_TRACE_POINT( 133 rte_eal_trace_memzone_reserve, 134 RTE_TRACE_POINT_ARGS(const char *name, size_t len, int socket_id, 135 unsigned int flags, unsigned int align, unsigned int bound, 136 const void *mz), 137 rte_trace_point_emit_string(name); 138 rte_trace_point_emit_size_t(len); 139 rte_trace_point_emit_int(socket_id); 140 rte_trace_point_emit_u32(flags); 141 rte_trace_point_emit_u32(align); 142 rte_trace_point_emit_u32(bound); 143 rte_trace_point_emit_ptr(mz); 144 ) 145 146 RTE_TRACE_POINT( 147 rte_eal_trace_memzone_lookup, 148 RTE_TRACE_POINT_ARGS(const char *name, const void *memzone), 149 rte_trace_point_emit_string(name); 150 rte_trace_point_emit_ptr(memzone); 151 ) 152 153 RTE_TRACE_POINT( 154 rte_eal_trace_memzone_free, 155 RTE_TRACE_POINT_ARGS(const char *name, void *addr, int rc), 156 rte_trace_point_emit_string(name); 157 rte_trace_point_emit_ptr(addr); 158 rte_trace_point_emit_int(rc); 159 ) 160 161 /* Thread */ 162 RTE_TRACE_POINT( 163 rte_eal_trace_thread_remote_launch, 164 RTE_TRACE_POINT_ARGS(int (*f)(void *), void *arg, 165 unsigned int worker_id, int rc), 166 rte_trace_point_emit_ptr(f); 167 rte_trace_point_emit_ptr(arg); 168 rte_trace_point_emit_u32(worker_id); 169 rte_trace_point_emit_int(rc); 170 ) 171 RTE_TRACE_POINT( 172 rte_eal_trace_thread_lcore_ready, 173 RTE_TRACE_POINT_ARGS(unsigned int lcore_id, const char *cpuset), 174 rte_trace_point_emit_u32(lcore_id); 175 rte_trace_point_emit_string(cpuset); 176 ) 177 RTE_TRACE_POINT( 178 rte_eal_trace_thread_lcore_running, 179 RTE_TRACE_POINT_ARGS(unsigned int lcore_id, void *f), 180 rte_trace_point_emit_u32(lcore_id); 181 rte_trace_point_emit_ptr(f); 182 ) 183 RTE_TRACE_POINT( 184 rte_eal_trace_thread_lcore_stopped, 185 RTE_TRACE_POINT_ARGS(unsigned int lcore_id), 186 rte_trace_point_emit_u32(lcore_id); 187 ) 188 189 /* Service */ 190 RTE_TRACE_POINT( 191 rte_eal_trace_service_map_lcore, 192 RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id, unsigned int enabled), 193 rte_trace_point_emit_u32(id); 194 rte_trace_point_emit_u32(lcore_id); 195 rte_trace_point_emit_u32(enabled); 196 ) 197 RTE_TRACE_POINT( 198 rte_eal_trace_service_lcore_state_change, 199 RTE_TRACE_POINT_ARGS(unsigned int lcore_id, int lcore_state), 200 rte_trace_point_emit_u32(lcore_id); 201 rte_trace_point_emit_i32(lcore_state); 202 ) 203 RTE_TRACE_POINT( 204 rte_eal_trace_service_lcore_start, 205 RTE_TRACE_POINT_ARGS(unsigned int lcore_id), 206 rte_trace_point_emit_u32(lcore_id); 207 ) 208 RTE_TRACE_POINT( 209 rte_eal_trace_service_lcore_stop, 210 RTE_TRACE_POINT_ARGS(unsigned int lcore_id), 211 rte_trace_point_emit_u32(lcore_id); 212 ) 213 RTE_TRACE_POINT( 214 rte_eal_trace_service_run_begin, 215 RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id), 216 rte_trace_point_emit_u32(id); 217 rte_trace_point_emit_u32(lcore_id); 218 ) 219 RTE_TRACE_POINT( 220 rte_eal_trace_service_runstate_set, 221 RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int run_state), 222 rte_trace_point_emit_u32(id); 223 rte_trace_point_emit_u32(run_state); 224 ) 225 RTE_TRACE_POINT( 226 rte_eal_trace_service_run_end, 227 RTE_TRACE_POINT_ARGS(unsigned int id, unsigned int lcore_id), 228 rte_trace_point_emit_u32(id); 229 rte_trace_point_emit_u32(lcore_id); 230 ) 231 RTE_TRACE_POINT( 232 rte_eal_trace_service_component_register, 233 RTE_TRACE_POINT_ARGS(int id, const char *service_name), 234 rte_trace_point_emit_i32(id); 235 rte_trace_point_emit_string(service_name); 236 ) 237 238 #ifdef __cplusplus 239 } 240 #endif 241 242 #endif /* EAL_TRACE_INTERNAL_H */ 243