From 5f56d736cbd752216357357b8de6a120a41c08eb Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Tue, 30 Oct 2018 10:21:59 -0700 Subject: session: prioritize postponed sessions If sessions cannot be handled during the current dispatch loop iteration, ensure that they are first to be handled in the next. Change-Id: Ifc6215900f8cfd530d4886b58641189f0ccf9bb7 Signed-off-by: Florin Coras --- src/vnet/session/session.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/vnet/session/session.c') diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c index 1802c0efd26..3dd80ad337a 100644 --- a/src/vnet/session/session.c +++ b/src/vnet/session/session.c @@ -1344,7 +1344,7 @@ session_manager_main_enable (vlib_main_t * vm) if (num_threads < 1) return clib_error_return (0, "n_thread_stacks not set"); - /* configure per-thread ** vectors */ + /* Allocate cache line aligned worker contexts */ vec_validate_aligned (smm->wrk, num_threads - 1, CLIB_CACHE_LINE_BYTES); for (i = 0; i < TRANSPORT_N_PROTO; i++) @@ -1356,12 +1356,14 @@ session_manager_main_enable (vlib_main_t * vm) for (i = 0; i < num_threads; i++) { wrk = &smm->wrk[i]; - vec_validate (wrk->free_event_vector, 0); + vec_validate (wrk->free_event_vector, 128); _vec_len (wrk->free_event_vector) = 0; - vec_validate (wrk->pending_event_vector, 0); + vec_validate (wrk->pending_event_vector, 128); _vec_len (wrk->pending_event_vector) = 0; - vec_validate (wrk->pending_disconnects, 0); + vec_validate (wrk->pending_disconnects, 128); _vec_len (wrk->pending_disconnects) = 0; + vec_validate (wrk->postponed_event_vector, 128); + _vec_len (wrk->postponed_event_vector) = 0; wrk->last_vlib_time = vlib_time_now (vlib_mains[i]); -- cgit 1.2.3-korg