From 8e4222fc7e23a478b021930ade3cb7d20938e398 Mon Sep 17 00:00:00 2001 From: Andrew Yourtchenko Date: Wed, 2 Aug 2017 06:36:07 -0400 Subject: acl-plugin: multicore: CSIT c100k 2-core stateful ACL test does not pass (VPP-912) Fix several threading-related issues uncovered by the CSIT scale/performance test: - make the per-interface add/del counters per-thread - preallocate the per-worker session pools rather than attempting to resize them within the datapath - move the bihash initialization to the moment of ACL being applied rather than later during the connection creation - adjust the connection cleaning logic to not require the signaling from workers to main thread - make the connection lists check in the main thread robust against workers updating the list heads at the same time - add more information to "show acl-plugin sessions" to aid in debugging Change-Id: If82ef715e4993614df11db5e9afa7fa6b522d9bc Signed-off-by: Andrew Yourtchenko --- src/plugins/acl/fa_node.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/plugins/acl/fa_node.h') diff --git a/src/plugins/acl/fa_node.h b/src/plugins/acl/fa_node.h index e4cd2ab57d8..a8dece4edcf 100644 --- a/src/plugins/acl/fa_node.h +++ b/src/plugins/acl/fa_node.h @@ -109,6 +109,9 @@ typedef struct { /* per-worker ACL_N_TIMEOUTS of conn lists */ u32 *fa_conn_list_head; u32 *fa_conn_list_tail; + /* adds and deletes per-worker-per-interface */ + u64 *fa_session_dels_by_sw_if_index; + u64 *fa_session_adds_by_sw_if_index; /* Vector of expired connections retrieved from lists */ u32 *expired; /* the earliest next expiry time */ -- cgit 1.2.3-korg