xref: /dpdk/lib/mempool/mempool_trace.h (revision 719834a6849e1daf4a70ff7742bbcc3ae7e25607)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(C) 2020 Marvell International Ltd.
3  */
4 
5 #ifndef MEMPOOL_TRACE_H
6 #define MEMPOOL_TRACE_H
7 
8 /**
9  * @file
10  *
11  * APIs for mempool trace support
12  */
13 
14 #include "rte_mempool.h"
15 
16 #include <rte_memzone.h>
17 #include <rte_trace_point.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 RTE_TRACE_POINT(
24 	rte_mempool_trace_create,
25 	RTE_TRACE_POINT_ARGS(const char *name, uint32_t nb_elts,
26 		uint32_t elt_size, uint32_t cache_size,
27 		uint32_t private_data_size, void *mp_init, void *mp_init_arg,
28 		void *obj_init, void *obj_init_arg, uint32_t flags,
29 		struct rte_mempool *mempool),
30 	rte_trace_point_emit_string(name);
31 	rte_trace_point_emit_u32(nb_elts);
32 	rte_trace_point_emit_u32(elt_size);
33 	rte_trace_point_emit_u32(cache_size);
34 	rte_trace_point_emit_u32(private_data_size);
35 	rte_trace_point_emit_ptr(mp_init);
36 	rte_trace_point_emit_ptr(mp_init_arg);
37 	rte_trace_point_emit_ptr(obj_init);
38 	rte_trace_point_emit_ptr(obj_init_arg);
39 	rte_trace_point_emit_u32(flags);
40 	rte_trace_point_emit_ptr(mempool);
41 	rte_trace_point_emit_i32(mempool->ops_index);
42 )
43 
44 RTE_TRACE_POINT(
45 	rte_mempool_trace_create_empty,
46 	RTE_TRACE_POINT_ARGS(const char *name, uint32_t nb_elts,
47 		uint32_t elt_size, uint32_t cache_size,
48 		uint32_t private_data_size, uint32_t flags,
49 		struct rte_mempool *mempool),
50 	rte_trace_point_emit_string(name);
51 	rte_trace_point_emit_u32(nb_elts);
52 	rte_trace_point_emit_u32(elt_size);
53 	rte_trace_point_emit_u32(cache_size);
54 	rte_trace_point_emit_u32(private_data_size);
55 	rte_trace_point_emit_u32(flags);
56 	rte_trace_point_emit_ptr(mempool);
57 	rte_trace_point_emit_i32(mempool->ops_index);
58 )
59 
60 RTE_TRACE_POINT(
61 	rte_mempool_trace_free,
62 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool),
63 	rte_trace_point_emit_ptr(mempool);
64 	rte_trace_point_emit_string(mempool->name);
65 )
66 
67 RTE_TRACE_POINT(
68 	rte_mempool_trace_populate_iova,
69 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, void *vaddr,
70 		rte_iova_t iova, size_t len, void *free_cb, void *opaque),
71 	rte_trace_point_emit_ptr(mempool);
72 	rte_trace_point_emit_string(mempool->name);
73 	rte_trace_point_emit_ptr(vaddr);
74 	rte_trace_point_emit_u64(iova);
75 	rte_trace_point_emit_size_t(len);
76 	rte_trace_point_emit_ptr(free_cb);
77 	rte_trace_point_emit_ptr(opaque);
78 )
79 
80 RTE_TRACE_POINT(
81 	rte_mempool_trace_populate_virt,
82 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, void *addr,
83 		size_t len, size_t pg_sz, void *free_cb, void *opaque),
84 	rte_trace_point_emit_ptr(mempool);
85 	rte_trace_point_emit_string(mempool->name);
86 	rte_trace_point_emit_ptr(addr);
87 	rte_trace_point_emit_size_t(len);
88 	rte_trace_point_emit_size_t(pg_sz);
89 	rte_trace_point_emit_ptr(free_cb);
90 	rte_trace_point_emit_ptr(opaque);
91 )
92 
93 RTE_TRACE_POINT(
94 	rte_mempool_trace_populate_default,
95 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool),
96 	rte_trace_point_emit_ptr(mempool);
97 	rte_trace_point_emit_string(mempool->name);
98 )
99 
100 RTE_TRACE_POINT(
101 	rte_mempool_trace_populate_anon,
102 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool),
103 	rte_trace_point_emit_ptr(mempool);
104 	rte_trace_point_emit_string(mempool->name);
105 )
106 
107 RTE_TRACE_POINT(
108 	rte_mempool_trace_cache_create,
109 	RTE_TRACE_POINT_ARGS(uint32_t size, int socket_id,
110 		struct rte_mempool_cache *cache),
111 	rte_trace_point_emit_u32(size);
112 	rte_trace_point_emit_i32(socket_id);
113 	rte_trace_point_emit_ptr(cache);
114 	rte_trace_point_emit_u32(cache->len);
115 	rte_trace_point_emit_u32(cache->flushthresh);
116 )
117 
118 RTE_TRACE_POINT(
119 	rte_mempool_trace_cache_free,
120 	RTE_TRACE_POINT_ARGS(void *cache),
121 	rte_trace_point_emit_ptr(cache);
122 )
123 
124 RTE_TRACE_POINT(
125 	rte_mempool_trace_get_page_size,
126 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, size_t pg_sz),
127 	rte_trace_point_emit_ptr(mempool);
128 	rte_trace_point_emit_string(mempool->name);
129 	rte_trace_point_emit_size_t(pg_sz);
130 )
131 
132 RTE_TRACE_POINT(
133 	rte_mempool_trace_ops_populate,
134 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, uint32_t max_objs,
135 		void *vaddr, uint64_t iova, size_t len, void *obj_cb,
136 		void *obj_cb_arg),
137 	rte_trace_point_emit_ptr(mempool);
138 	rte_trace_point_emit_string(mempool->name);
139 	rte_trace_point_emit_u32(max_objs);
140 	rte_trace_point_emit_ptr(vaddr);
141 	rte_trace_point_emit_u64(iova);
142 	rte_trace_point_emit_size_t(len);
143 	rte_trace_point_emit_ptr(obj_cb);
144 	rte_trace_point_emit_ptr(obj_cb_arg);
145 )
146 
147 RTE_TRACE_POINT(
148 	rte_mempool_trace_ops_alloc,
149 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool),
150 	rte_trace_point_emit_ptr(mempool);
151 	rte_trace_point_emit_string(mempool->name);
152 )
153 
154 RTE_TRACE_POINT(
155 	rte_mempool_trace_ops_free,
156 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool),
157 	rte_trace_point_emit_ptr(mempool);
158 	rte_trace_point_emit_string(mempool->name);
159 )
160 
161 RTE_TRACE_POINT(
162 	rte_mempool_trace_set_ops_byname,
163 	RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, const char *name,
164 		void *pool_config),
165 	rte_trace_point_emit_ptr(mempool);
166 	rte_trace_point_emit_string(mempool->name);
167 	rte_trace_point_emit_string(name);
168 	rte_trace_point_emit_ptr(pool_config);
169 )
170 
171 #ifdef __cplusplus
172 }
173 #endif
174 
175 #endif /* MEMPOOL_TRACE_H */
176