1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2020 Marvell International Ltd.
5 #ifndef _RTE_EAL_TRACE_H_
6 #define _RTE_EAL_TRACE_H_
11 * API for EAL trace support
18 #include <rte_alarm.h>
19 #include <rte_interrupts.h>
20 #include <rte_trace_point.h>
22 #include "eal_interrupts.h"
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);
36 rte_eal_trace_alarm_cancel,
37 RTE_TRACE_POINT_ARGS(rte_eal_alarm_callback cb_fn, void *cb_arg,
39 rte_trace_point_emit_ptr(cb_fn);
40 rte_trace_point_emit_ptr(cb_arg);
41 rte_trace_point_emit_int(count);
46 rte_eal_trace_generic_void,
47 RTE_TRACE_POINT_ARGS(void),
51 rte_eal_trace_generic_u64,
52 RTE_TRACE_POINT_ARGS(uint64_t in),
53 rte_trace_point_emit_u64(in);
57 rte_eal_trace_generic_u32,
58 RTE_TRACE_POINT_ARGS(uint32_t in),
59 rte_trace_point_emit_u32(in);
63 rte_eal_trace_generic_u16,
64 RTE_TRACE_POINT_ARGS(uint16_t in),
65 rte_trace_point_emit_u16(in);
69 rte_eal_trace_generic_u8,
70 RTE_TRACE_POINT_ARGS(uint8_t in),
71 rte_trace_point_emit_u8(in);
75 rte_eal_trace_generic_i64,
76 RTE_TRACE_POINT_ARGS(int64_t in),
77 rte_trace_point_emit_i64(in);
81 rte_eal_trace_generic_i32,
82 RTE_TRACE_POINT_ARGS(int32_t in),
83 rte_trace_point_emit_i32(in);
87 rte_eal_trace_generic_i16,
88 RTE_TRACE_POINT_ARGS(int16_t in),
89 rte_trace_point_emit_i16(in);
93 rte_eal_trace_generic_i8,
94 RTE_TRACE_POINT_ARGS(int8_t in),
95 rte_trace_point_emit_i8(in);
99 rte_eal_trace_generic_int,
100 RTE_TRACE_POINT_ARGS(int in),
101 rte_trace_point_emit_int(in);
105 rte_eal_trace_generic_long,
106 RTE_TRACE_POINT_ARGS(long in),
107 rte_trace_point_emit_long(in);
111 rte_eal_trace_generic_float,
112 RTE_TRACE_POINT_ARGS(float in),
113 rte_trace_point_emit_float(in);
117 rte_eal_trace_generic_double,
118 RTE_TRACE_POINT_ARGS(double in),
119 rte_trace_point_emit_double(in);
123 rte_eal_trace_generic_ptr,
124 RTE_TRACE_POINT_ARGS(const void *ptr),
125 rte_trace_point_emit_ptr(ptr);
129 rte_eal_trace_generic_str,
130 RTE_TRACE_POINT_ARGS(const char *str),
131 rte_trace_point_emit_string(str);
135 rte_eal_trace_generic_size_t,
136 RTE_TRACE_POINT_ARGS(size_t sz),
137 rte_trace_point_emit_size_t(sz);
141 rte_eal_trace_generic_func,
142 RTE_TRACE_POINT_ARGS(const char *func),
143 rte_trace_point_emit_string(func);
146 #define RTE_EAL_TRACE_GENERIC_FUNC rte_eal_trace_generic_func(__func__)
150 rte_eal_trace_intr_callback_register,
151 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
152 rte_intr_callback_fn cb, void *cb_arg, int rc),
153 rte_trace_point_emit_int(rc);
154 rte_trace_point_emit_int(handle->dev_fd);
155 rte_trace_point_emit_int(handle->fd);
156 rte_trace_point_emit_int(handle->type);
157 rte_trace_point_emit_u32(handle->max_intr);
158 rte_trace_point_emit_u32(handle->nb_efd);
159 rte_trace_point_emit_ptr(cb);
160 rte_trace_point_emit_ptr(cb_arg);
163 rte_eal_trace_intr_callback_unregister,
164 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
165 rte_intr_callback_fn cb, void *cb_arg, int rc),
166 rte_trace_point_emit_int(rc);
167 rte_trace_point_emit_int(handle->dev_fd);
168 rte_trace_point_emit_int(handle->fd);
169 rte_trace_point_emit_int(handle->type);
170 rte_trace_point_emit_u32(handle->max_intr);
171 rte_trace_point_emit_u32(handle->nb_efd);
172 rte_trace_point_emit_ptr(cb);
173 rte_trace_point_emit_ptr(cb_arg);
176 rte_eal_trace_intr_enable,
177 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
178 rte_trace_point_emit_int(rc);
179 rte_trace_point_emit_int(handle->dev_fd);
180 rte_trace_point_emit_int(handle->fd);
181 rte_trace_point_emit_int(handle->type);
182 rte_trace_point_emit_u32(handle->max_intr);
183 rte_trace_point_emit_u32(handle->nb_efd);
186 rte_eal_trace_intr_disable,
187 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
188 rte_trace_point_emit_int(rc);
189 rte_trace_point_emit_int(handle->dev_fd);
190 rte_trace_point_emit_int(handle->fd);
191 rte_trace_point_emit_int(handle->type);
192 rte_trace_point_emit_u32(handle->max_intr);
193 rte_trace_point_emit_u32(handle->nb_efd);
198 rte_eal_trace_mem_zmalloc,
199 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
200 int socket, void *ptr),
201 rte_trace_point_emit_string(type);
202 rte_trace_point_emit_size_t(size);
203 rte_trace_point_emit_u32(align);
204 rte_trace_point_emit_int(socket);
205 rte_trace_point_emit_ptr(ptr);
209 rte_eal_trace_mem_malloc,
210 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
211 int socket, void *ptr),
212 rte_trace_point_emit_string(type);
213 rte_trace_point_emit_size_t(size);
214 rte_trace_point_emit_u32(align);
215 rte_trace_point_emit_int(socket);
216 rte_trace_point_emit_ptr(ptr);
220 rte_eal_trace_mem_realloc,
221 RTE_TRACE_POINT_ARGS(size_t size, unsigned int align, int socket,
223 rte_trace_point_emit_size_t(size);
224 rte_trace_point_emit_u32(align);
225 rte_trace_point_emit_int(socket);
226 rte_trace_point_emit_ptr(ptr);
230 rte_eal_trace_mem_free,
231 RTE_TRACE_POINT_ARGS(void *ptr),
232 rte_trace_point_emit_ptr(ptr);
237 rte_eal_trace_memzone_reserve,
238 RTE_TRACE_POINT_ARGS(const char *name, size_t len, int socket_id,
239 unsigned int flags, unsigned int align, unsigned int bound,
241 rte_trace_point_emit_string(name);
242 rte_trace_point_emit_size_t(len);
243 rte_trace_point_emit_int(socket_id);
244 rte_trace_point_emit_u32(flags);
245 rte_trace_point_emit_u32(align);
246 rte_trace_point_emit_u32(bound);
247 rte_trace_point_emit_ptr(mz);
251 rte_eal_trace_memzone_lookup,
252 RTE_TRACE_POINT_ARGS(const char *name, const void *memzone),
253 rte_trace_point_emit_string(name);
254 rte_trace_point_emit_ptr(memzone);
258 rte_eal_trace_memzone_free,
259 RTE_TRACE_POINT_ARGS(const char *name, void *addr, int rc),
260 rte_trace_point_emit_string(name);
261 rte_trace_point_emit_ptr(addr);
262 rte_trace_point_emit_int(rc);
267 rte_eal_trace_thread_remote_launch,
268 RTE_TRACE_POINT_ARGS(int (*f)(void *), void *arg,
269 unsigned int worker_id, int rc),
270 rte_trace_point_emit_ptr(f);
271 rte_trace_point_emit_ptr(arg);
272 rte_trace_point_emit_u32(worker_id);
273 rte_trace_point_emit_int(rc);
276 rte_eal_trace_thread_lcore_ready,
277 RTE_TRACE_POINT_ARGS(unsigned int lcore_id, const char *cpuset),
278 rte_trace_point_emit_u32(lcore_id);
279 rte_trace_point_emit_string(cpuset);
286 #endif /* _RTE_EAL_TRACE_H_ */