X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession.c;h=b944f5a2104aac9e7e075b9ed6d20f0f1736c568;hb=36ee9f1ca37daf277c2cd8d33bf16eabc15773e5;hp=1802c0efd2637fc3dc6dea3c66b004e2d288f575;hpb=5a7ca7bde104b12f8dc4a751fd911819d4bd6c8e;p=vpp.git diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c index 1802c0efd26..b944f5a2104 100644 --- a/src/vnet/session/session.c +++ b/src/vnet/session/session.c @@ -1081,7 +1081,7 @@ stream_session_disconnect (stream_session_t * s) * held, just append a new event to pending disconnects vector. */ if (vlib_thread_is_main_w_barrier () || thread_index == s->thread_index) { - wrk = session_manager_get_worker (thread_index); + wrk = session_manager_get_worker (s->thread_index); vec_add2 (wrk->pending_disconnects, evt, 1); clib_memset (evt, 0, sizeof (*evt)); evt->session_handle = session_handle (s); @@ -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,14 +1356,17 @@ 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]); + wrk->dispatch_period = 500e-6; if (num_threads > 1) clib_rwlock_init (&smm->wrk[i].peekers_rw_locks);