VPP-846: tcp perf / scale / hardening
[vpp.git] / src / vnet / session / session.c
index ed205d7..c5aaf2e 100644 (file)
@@ -1087,11 +1087,19 @@ session_manager_main_enable (vlib_main_t * vm)
   vec_validate (smm->sessions, num_threads - 1);
   vec_validate (smm->session_indices_to_enqueue_by_thread, num_threads - 1);
   vec_validate (smm->tx_buffers, num_threads - 1);
-  vec_validate (smm->fifo_events, num_threads - 1);
-  vec_validate (smm->evts_partially_read, num_threads - 1);
+  vec_validate (smm->pending_event_vector, num_threads - 1);
+  vec_validate (smm->free_event_vector, num_threads - 1);
   vec_validate (smm->current_enqueue_epoch, num_threads - 1);
   vec_validate (smm->vpp_event_queues, num_threads - 1);
 
+  for (i = 0; i < num_threads; i++)
+    {
+      vec_validate (smm->free_event_vector[i], 0);
+      _vec_len (smm->free_event_vector[i]) = 0;
+      vec_validate (smm->pending_event_vector[i], 0);
+      _vec_len (smm->pending_event_vector[i]) = 0;
+    }
+
 #if SESSION_DBG
   vec_validate (smm->last_event_poll_by_thread, num_threads - 1);
 #endif
@@ -1104,7 +1112,7 @@ session_manager_main_enable (vlib_main_t * vm)
   for (i = 0; i < 200000; i++)
     {
       stream_session_t *ss;
-      pool_get (smm->sessions[0], ss);
+      pool_get_aligned (smm->sessions[0], ss, CLIB_CACHE_LINE_BYTES);
       memset (ss, 0, sizeof (*ss));
     }