diff options
author | Florin Coras <fcoras@cisco.com> | 2018-10-30 10:21:59 -0700 |
---|---|---|
committer | Marco Varlese <marco.varlese@suse.de> | 2018-10-31 08:17:33 +0000 |
commit | 5f56d736cbd752216357357b8de6a120a41c08eb (patch) | |
tree | 783abee8a2c3e77513940734716775a88ac6bdeb /src/vnet/session/session.c | |
parent | 5a7ca7bde104b12f8dc4a751fd911819d4bd6c8e (diff) |
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 <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session/session.c')
-rw-r--r-- | src/vnet/session/session.c | 10 |
1 files changed, 6 insertions, 4 deletions
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]); |