xref: /dpdk/lib/stack/rte_stack_std.c (revision 99a2dd955fba6e4cc23b77d590a033650ced9c45)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2019 Intel Corporation
3  */
4 
5 #include "rte_stack.h"
6 
7 void
rte_stack_std_init(struct rte_stack * s)8 rte_stack_std_init(struct rte_stack *s)
9 {
10 	rte_spinlock_init(&s->stack_std.lock);
11 }
12 
13 ssize_t
rte_stack_std_get_memsize(unsigned int count)14 rte_stack_std_get_memsize(unsigned int count)
15 {
16 	ssize_t sz = sizeof(struct rte_stack);
17 
18 	sz += RTE_CACHE_LINE_ROUNDUP(count * sizeof(void *));
19 
20 	/* Add padding to avoid false sharing conflicts caused by
21 	 * next-line hardware prefetchers.
22 	 */
23 	sz += 2 * RTE_CACHE_LINE_SIZE;
24 
25 	return sz;
26 }
27