From 2711ca710affe0c52bf63e08e0cf0588094e6198 Mon Sep 17 00:00:00 2001 From: Filip Tehlar Date: Wed, 24 Nov 2021 10:30:59 +0000 Subject: session: improve fifo segment allocation This patch ensures that fifo segment has at least the size that was requested during allocation. Type: improvement Signed-off-by: Filip Tehlar Change-Id: Iea8a885ac290183e25e5c8f9163bba226c5efa15 --- src/vnet/session/segment_manager.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/vnet/session/segment_manager.c') diff --git a/src/vnet/session/segment_manager.c b/src/vnet/session/segment_manager.c index e04f626eab2..a55f7d3472c 100644 --- a/src/vnet/session/segment_manager.c +++ b/src/vnet/session/segment_manager.c @@ -119,6 +119,12 @@ segment_manager_add_segment_inline (segment_manager_t *sm, uword segment_size, * Allocate ssvm segment */ segment_size = segment_size ? segment_size : props->add_segment_size; + /* add overhead to ensure the result segment size is at least + * of that requested */ + segment_size += + sizeof (fifo_segment_header_t) + + vlib_thread_main.n_vlib_mains * sizeof (fifo_segment_slice_t) + + FIFO_SEGMENT_ALLOC_OVERHEAD; segment_size = round_pow2 (segment_size, clib_mem_get_page_size ()); if (props->segment_type != SSVM_SEGMENT_PRIVATE) -- cgit 1.2.3-korg