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_size_t,
134 RTE_TRACE_POINT_ARGS(size_t sz),
135 rte_trace_point_emit_size_t(sz);
139 rte_eal_trace_generic_func,
140 RTE_TRACE_POINT_ARGS(const char *func),
141 rte_trace_point_emit_string(func);
144 #define RTE_EAL_TRACE_GENERIC_FUNC rte_eal_trace_generic_func(__func__)
148 rte_eal_trace_intr_callback_register,
149 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
150 rte_intr_callback_fn cb, void *cb_arg, int rc),
151 rte_trace_point_emit_int(rc);
152 rte_trace_point_emit_int(handle->vfio_dev_fd);
153 rte_trace_point_emit_int(handle->fd);
154 rte_trace_point_emit_int(handle->type);
155 rte_trace_point_emit_u32(handle->max_intr);
156 rte_trace_point_emit_u32(handle->nb_efd);
157 rte_trace_point_emit_ptr(cb);
158 rte_trace_point_emit_ptr(cb_arg);
161 rte_eal_trace_intr_callback_unregister,
162 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle,
163 rte_intr_callback_fn cb, void *cb_arg, int rc),
164 rte_trace_point_emit_int(rc);
165 rte_trace_point_emit_int(handle->vfio_dev_fd);
166 rte_trace_point_emit_int(handle->fd);
167 rte_trace_point_emit_int(handle->type);
168 rte_trace_point_emit_u32(handle->max_intr);
169 rte_trace_point_emit_u32(handle->nb_efd);
170 rte_trace_point_emit_ptr(cb);
171 rte_trace_point_emit_ptr(cb_arg);
174 rte_eal_trace_intr_enable,
175 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
176 rte_trace_point_emit_int(rc);
177 rte_trace_point_emit_int(handle->vfio_dev_fd);
178 rte_trace_point_emit_int(handle->fd);
179 rte_trace_point_emit_int(handle->type);
180 rte_trace_point_emit_u32(handle->max_intr);
181 rte_trace_point_emit_u32(handle->nb_efd);
184 rte_eal_trace_intr_disable,
185 RTE_TRACE_POINT_ARGS(const struct rte_intr_handle *handle, int rc),
186 rte_trace_point_emit_int(rc);
187 rte_trace_point_emit_int(handle->vfio_dev_fd);
188 rte_trace_point_emit_int(handle->fd);
189 rte_trace_point_emit_int(handle->type);
190 rte_trace_point_emit_u32(handle->max_intr);
191 rte_trace_point_emit_u32(handle->nb_efd);
196 rte_eal_trace_mem_zmalloc,
197 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
198 int socket, void *ptr),
199 rte_trace_point_emit_string(type);
200 rte_trace_point_emit_size_t(size);
201 rte_trace_point_emit_u32(align);
202 rte_trace_point_emit_int(socket);
203 rte_trace_point_emit_ptr(ptr);
207 rte_eal_trace_mem_malloc,
208 RTE_TRACE_POINT_ARGS(const char *type, size_t size, unsigned int align,
209 int socket, void *ptr),
210 rte_trace_point_emit_string(type);
211 rte_trace_point_emit_size_t(size);
212 rte_trace_point_emit_u32(align);
213 rte_trace_point_emit_int(socket);
214 rte_trace_point_emit_ptr(ptr);
218 rte_eal_trace_mem_realloc,
219 RTE_TRACE_POINT_ARGS(size_t size, unsigned int align, int socket,
221 rte_trace_point_emit_size_t(size);
222 rte_trace_point_emit_u32(align);
223 rte_trace_point_emit_int(socket);
224 rte_trace_point_emit_ptr(ptr);
228 rte_eal_trace_mem_free,
229 RTE_TRACE_POINT_ARGS(void *ptr),
230 rte_trace_point_emit_ptr(ptr);
235 rte_eal_trace_memzone_reserve,
236 RTE_TRACE_POINT_ARGS(const char *name, size_t len, int socket_id,
237 unsigned int flags, unsigned int align, unsigned int bound,
239 rte_trace_point_emit_string(name);
240 rte_trace_point_emit_size_t(len);
241 rte_trace_point_emit_int(socket_id);
242 rte_trace_point_emit_u32(flags);
243 rte_trace_point_emit_u32(align);
244 rte_trace_point_emit_u32(bound);
245 rte_trace_point_emit_ptr(mz);
249 rte_eal_trace_memzone_lookup,
250 RTE_TRACE_POINT_ARGS(const char *name, const void *memzone),
251 rte_trace_point_emit_string(name);
252 rte_trace_point_emit_ptr(memzone);
256 rte_eal_trace_memzone_free,
257 RTE_TRACE_POINT_ARGS(const char *name, void *addr, int rc),
258 rte_trace_point_emit_string(name);
259 rte_trace_point_emit_ptr(addr);
260 rte_trace_point_emit_int(rc);
265 rte_eal_trace_thread_remote_launch,
266 RTE_TRACE_POINT_ARGS(int (*f)(void *), void *arg,
267 unsigned int worker_id, int rc),
268 rte_trace_point_emit_ptr(f);
269 rte_trace_point_emit_ptr(arg);
270 rte_trace_point_emit_u32(worker_id);
271 rte_trace_point_emit_int(rc);
274 rte_eal_trace_thread_lcore_ready,
275 RTE_TRACE_POINT_ARGS(unsigned int lcore_id, const char *cpuset),
276 rte_trace_point_emit_u32(lcore_id);
277 rte_trace_point_emit_string(cpuset);
284 #endif /* _RTE_EAL_TRACE_H_ */