From: Andrew Yourtchenko Date: Thu, 13 Sep 2018 09:13:13 +0000 (+0200) Subject: acl-plugin: do not do clib_smp_atomic_add on per-worker counters X-Git-Tag: v18.10-rc1~188 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=93008c26e9226fa86a7d2e5569b9e69c29d0996b acl-plugin: do not do clib_smp_atomic_add on per-worker counters Just do a regular increment, since we are not contending for these counters. This also makes the tests pass on ARM ThunderX (VPP-1395). Change-Id: I333aaa11d4145d13d322868900bc114df85a020d Signed-off-by: Andrew Yourtchenko --- diff --git a/src/plugins/acl/session_inlines.h b/src/plugins/acl/session_inlines.h index 93683c4c4a1..cab4d7d4cc9 100644 --- a/src/plugins/acl/session_inlines.h +++ b/src/plugins/acl/session_inlines.h @@ -430,7 +430,7 @@ acl_fa_put_session (acl_main_t * am, u32 sw_if_index, as the caller must have dealt with the timers. */ vec_validate (pw->fa_session_dels_by_sw_if_index, sw_if_index); clib_mem_set_heap (oldheap); - clib_smp_atomic_add (&pw->fa_session_dels_by_sw_if_index[sw_if_index], 1); + pw->fa_session_dels_by_sw_if_index[sw_if_index]++; clib_smp_atomic_add (&am->fa_session_total_dels, 1); } @@ -569,7 +569,7 @@ acl_fa_add_session (acl_main_t * am, int is_input, int is_ip6, vec_validate (pw->fa_session_adds_by_sw_if_index, sw_if_index); clib_mem_set_heap (oldheap); - clib_smp_atomic_add (&pw->fa_session_adds_by_sw_if_index[sw_if_index], 1); + pw->fa_session_adds_by_sw_if_index[sw_if_index]++; clib_smp_atomic_add (&am->fa_session_total_adds, 1); return sess; }