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