1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2020 Marvell International Ltd.
5 #ifndef _RTE_MEMPOOL_TRACE_H_
6 #define _RTE_MEMPOOL_TRACE_H_
11 * APIs for mempool trace support
18 #include "rte_mempool.h"
20 #include <rte_memzone.h>
21 #include <rte_trace_point.h>
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);
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);
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);
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);
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);
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);
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);
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);
119 rte_mempool_trace_cache_free,
120 RTE_TRACE_POINT_ARGS(void *cache),
121 rte_trace_point_emit_ptr(cache);
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);
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,
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);
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);
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);
162 rte_mempool_trace_set_ops_byname,
163 RTE_TRACE_POINT_ARGS(struct rte_mempool *mempool, const char *name,
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);
175 #endif /* _RTE_MEMPOOL_TRACE_H_ */