acl-plugin: multicore: CSIT c100k 2-core stateful ACL test does not pass (VPP-912) 00/7900/2
authorAndrew Yourtchenko <ayourtch@gmail.com>
Wed, 2 Aug 2017 10:36:07 +0000 (06:36 -0400)
committerNeale Ranns <nranns@cisco.com>
Thu, 3 Aug 2017 17:00:35 +0000 (17:00 +0000)
commit22d32d916f4f3806501cf39b324be19e06b89c12
tree95b6d1878d67b66f39f4fe4ab96266ac7760f3d0
parent808c5b21c2759564689933d004223052b7895a42
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 <ayourtch@gmail.com>
(cherry picked from commit 8e4222fc7e23a478b021930ade3cb7d20938e398)
src/plugins/acl/acl.c
src/plugins/acl/acl.h
src/plugins/acl/fa_node.c
src/plugins/acl/fa_node.h