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>
24 rte_eal_trace_alarm_set,
25 RTE_TRACE_POINT_ARGS(uint64_t us, rte_eal_alarm_callback cb_fn,
26 void *cb_arg, int rc),
27 rte_trace_point_emit_u64(us);
28 rte_trace_point_emit_ptr(cb_fn);
29 rte_trace_point_emit_ptr(cb_arg);
30 rte_trace_point_emit_int(rc);
34 rte_eal_trace_alarm_cancel,
35 RTE_TRACE_POINT_ARGS(rte_eal_alarm_callback cb_fn, void *cb_arg,
37 rte_trace_point_emit_ptr(cb_fn);
38 rte_trace_point_emit_ptr(cb_arg);
39 rte_trace_point_emit_int(count);
44 rte_eal_trace_generic_void,
45 RTE_TRACE_POINT_ARGS(void),
49 rte_eal_trace_generic_u64,
50 RTE_TRACE_POINT_ARGS(uint64_t in),
51 rte_trace_point_emit_u64(in);
55 rte_eal_trace_generic_u32,
56 RTE_TRACE_POINT_ARGS(uint32_t in),
57 rte_trace_point_emit_u32(in);
61 rte_eal_trace_generic_u16,
62 RTE_TRACE_POINT_ARGS(uint16_t in),
63 rte_trace_point_emit_u16(in);
67 rte_eal_trace_generic_u8,
68 RTE_TRACE_POINT_ARGS(uint8_t in),
69 rte_trace_point_emit_u8(in);
73 rte_eal_trace_generic_i64,
74 RTE_TRACE_POINT_ARGS(int64_t in),
75 rte_trace_point_emit_i64(in);
79 rte_eal_trace_generic_i32,
80 RTE_TRACE_POINT_ARGS(int32_t in),
81 rte_trace_point_emit_i32(in);
85 rte_eal_trace_generic_i16,
86 RTE_TRACE_POINT_ARGS(int16_t in),
87 rte_trace_point_emit_i16(in);
91 rte_eal_trace_generic_i8,
92 RTE_TRACE_POINT_ARGS(int8_t in),
93 rte_trace_point_emit_i8(in);
97 rte_eal_trace_generic_int,
98 RTE_TRACE_POINT_ARGS(int in),
99 rte_trace_point_emit_int(in);
103 rte_eal_trace_generic_long,
104 RTE_TRACE_POINT_ARGS(long in),
105 rte_trace_point_emit_long(in);
109 rte_eal_trace_generic_float,
110 RTE_TRACE_POINT_ARGS(float in),
111 rte_trace_point_emit_float(in);
115 rte_eal_trace_generic_double,
116 RTE_TRACE_POINT_ARGS(double in),
117 rte_trace_point_emit_double(in);
121 rte_eal_trace_generic_ptr,
122 RTE_TRACE_POINT_ARGS(const void *ptr),
123 rte_trace_point_emit_ptr(ptr);
127 rte_eal_trace_generic_str,
128 RTE_TRACE_POINT_ARGS(const char *str),
129 rte_trace_point_emit_string(str);
133 rte_eal_trace_generic_func,
134 RTE_TRACE_POINT_ARGS(const char *func),
135 rte_trace_point_emit_string(func);
138 #define RTE_EAL_TRACE_GENERIC_FUNC rte_eal_trace_generic_func(__func__)
142 rte_eal_trace_intr_callback_register,
143 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
144 rte_intr_callback_fn cb, void *cb_arg, int rc),
145 rte_trace_point_emit_int(rc);
146 rte_trace_point_emit_int(handle->vfio_dev_fd);
147 rte_trace_point_emit_int(handle->fd);
148 rte_trace_point_emit_int(handle->type);
149 rte_trace_point_emit_u32(handle->max_intr);
150 rte_trace_point_emit_u32(handle->nb_efd);
151 rte_trace_point_emit_ptr(cb);
152 rte_trace_point_emit_ptr(cb_arg);
155 rte_eal_trace_intr_callback_unregister,
156 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
157 rte_intr_callback_fn cb, void *cb_arg, int rc),
158 rte_trace_point_emit_int(rc);
159 rte_trace_point_emit_int(handle->vfio_dev_fd);
160 rte_trace_point_emit_int(handle->fd);
161 rte_trace_point_emit_int(handle->type);
162 rte_trace_point_emit_u32(handle->max_intr);
163 rte_trace_point_emit_u32(handle->nb_efd);
164 rte_trace_point_emit_ptr(cb);
165 rte_trace_point_emit_ptr(cb_arg);
168 rte_eal_trace_intr_enable,
169 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
170 rte_trace_point_emit_int(rc);
171 rte_trace_point_emit_int(handle->vfio_dev_fd);
172 rte_trace_point_emit_int(handle->fd);
173 rte_trace_point_emit_int(handle->type);
174 rte_trace_point_emit_u32(handle->max_intr);
175 rte_trace_point_emit_u32(handle->nb_efd);
178 rte_eal_trace_intr_disable,
179 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
180 rte_trace_point_emit_int(rc);
181 rte_trace_point_emit_int(handle->vfio_dev_fd);
182 rte_trace_point_emit_int(handle->fd);
183 rte_trace_point_emit_int(handle->type);
184 rte_trace_point_emit_u32(handle->max_intr);
185 rte_trace_point_emit_u32(handle->nb_efd);
190 rte_eal_trace_mem_zmalloc,
191 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
192 int socket, void *ptr),
193 rte_trace_point_emit_string(type);
194 rte_trace_point_emit_size_t(size);
195 rte_trace_point_emit_u32(align);
196 rte_trace_point_emit_int(socket);
197 rte_trace_point_emit_ptr(ptr);
201 rte_eal_trace_mem_malloc,
202 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
203 int socket, void *ptr),
204 rte_trace_point_emit_string(type);
205 rte_trace_point_emit_size_t(size);
206 rte_trace_point_emit_u32(align);
207 rte_trace_point_emit_int(socket);
208 rte_trace_point_emit_ptr(ptr);
212 rte_eal_trace_mem_realloc,
213 RTE_TRACE_POINT_ARGS(size_t size, unsigned int align, int socket,
215 rte_trace_point_emit_size_t(size);
216 rte_trace_point_emit_u32(align);
217 rte_trace_point_emit_int(socket);
218 rte_trace_point_emit_ptr(ptr);
222 rte_eal_trace_mem_free,
223 RTE_TRACE_POINT_ARGS(void *ptr),
224 rte_trace_point_emit_ptr(ptr);
229 rte_eal_trace_memzone_reserve,
230 RTE_TRACE_POINT_ARGS(const char *name, size_t len, int socket_id,
231 unsigned int flags, unsigned int align, unsigned int bound,
233 rte_trace_point_emit_string(name);
234 rte_trace_point_emit_size_t(len);
235 rte_trace_point_emit_int(socket_id);
236 rte_trace_point_emit_u32(flags);
237 rte_trace_point_emit_u32(align);
238 rte_trace_point_emit_u32(bound);
239 rte_trace_point_emit_ptr(mz);
243 rte_eal_trace_memzone_lookup,
244 RTE_TRACE_POINT_ARGS(const char *name, const void *memzone),
245 rte_trace_point_emit_string(name);
246 rte_trace_point_emit_ptr(memzone);
250 rte_eal_trace_memzone_free,
251 RTE_TRACE_POINT_ARGS(const char *name, void *addr, int rc),
252 rte_trace_point_emit_string(name);
253 rte_trace_point_emit_ptr(addr);
254 rte_trace_point_emit_int(rc);
259 rte_eal_trace_thread_remote_launch,
260 RTE_TRACE_POINT_ARGS(int (*f)(void *), void *arg,
261 unsigned int slave_id, int rc),
262 rte_trace_point_emit_ptr(f);
263 rte_trace_point_emit_ptr(arg);
264 rte_trace_point_emit_u32(slave_id);
265 rte_trace_point_emit_int(rc);
268 rte_eal_trace_thread_lcore_ready,
269 RTE_TRACE_POINT_ARGS(unsigned int lcore_id, const char *cpuset),
270 rte_trace_point_emit_u32(lcore_id);
271 rte_trace_point_emit_string(cpuset);
278 #endif /* _RTE_EAL_TRACE_H_ */