acl-plugin: multicore: CSIT c100k 2-core stateful ACL test does not pass (VPP-912) 76/7676/6
authorAndrew Yourtchenko <ayourtch@gmail.com>
Wed, 2 Aug 2017 10:36:07 +0000 (06:36 -0400)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Wed, 2 Aug 2017 10:36:07 +0000 (06:36 -0400)
commit8e4222fc7e23a478b021930ade3cb7d20938e398
tree588aa9c289e272ce99c37e6adbc3836c76f9029c
parent6d19bcde9ca20fbae19ff5041cf3603d8ea5fc59
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>
src/plugins/acl/acl.c
src/plugins/acl/acl.h
src/plugins/acl/fa_node.c
src/plugins/acl/fa_node.h