MCPcopy Create free account
hub / github.com/F-Stack/f-stack / mlx5_malloc

Function mlx5_malloc

dpdk/drivers/common/mlx5/mlx5_malloc.c:164–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

162}
163
164void *
165mlx5_malloc(uint32_t flags, size_t size, unsigned int align, int socket)
166{
167 void *addr;
168 bool rte_mem;
169
170 /*
171 * If neither system memory nor rte memory is required, allocate
172 * memory according to mlx5_sys_mem.enable.
173 */
174 if (flags & MLX5_MEM_RTE)
175 rte_mem = true;
176 else if (flags & MLX5_MEM_SYS)
177 rte_mem = false;
178 else
179 rte_mem = mlx5_sys_mem.enable ? false : true;
180 if (rte_mem) {
181 if (flags & MLX5_MEM_ZERO)
182 addr = rte_zmalloc_socket(NULL, size, align, socket);
183 else
184 addr = rte_malloc_socket(NULL, size, align, socket);
185 mlx5_mem_update_msl(addr);
186#ifdef RTE_LIBRTE_MLX5_DEBUG
187 if (addr)
188 __atomic_fetch_add(&mlx5_sys_mem.malloc_rte, 1,
189 __ATOMIC_RELAXED);
190#endif
191 return addr;
192 }
193 /* The memory will be allocated from system. */
194 if (align > MLX5_MALLOC_ALIGNMENT)
195 addr = mlx5_alloc_align(size, align, !!(flags & MLX5_MEM_ZERO));
196 else if (flags & MLX5_MEM_ZERO)
197 addr = calloc(1, size);
198 else
199 addr = malloc(size);
200#ifdef RTE_LIBRTE_MLX5_DEBUG
201 if (addr)
202 __atomic_fetch_add(&mlx5_sys_mem.malloc_sys, 1,
203 __ATOMIC_RELAXED);
204#endif
205 return addr;
206}
207
208void *
209mlx5_realloc(void *addr, uint32_t flags, size_t size, unsigned int align,

Calls 6

rte_zmalloc_socketFunction · 0.85
rte_malloc_socketFunction · 0.85
mlx5_mem_update_mslFunction · 0.85
mlx5_alloc_alignFunction · 0.85
callocFunction · 0.85
mallocFunction · 0.85

Tested by

no test coverage detected