xref: /dpdk/lib/eal/include/eal_trace_internal.h (revision 719834a6849e1daf4a70ff7742bbcc3ae7e25607)
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