acl: add AVX2 classify method
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Tue, 20 Jan 2015 18:41:00 +0000 (18:41 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 28 Jan 2015 16:11:25 +0000 (17:11 +0100)
commit5dd71363bfd2b8d33d6b7aea9ab43db5792fd4e2
tree785ce3df88220a217a279c6ba0c7192baa744afc
parentda826b7135a411c05ae574565a65bca26b48f8ac
acl: add AVX2 classify method

Introduce new classify() method that uses AVX2 instructions.

>From my measurements:
On HSW boards when processing >= 16 packets per call,
AVX2 method outperforms it's SSE counterpart by 10-25%,
(depending on the ruleset).

When build with the compilers that don't support AVX2 instructions,
make rte_acl_classify_avx2() do nothing and return an error.
At runtime, if librte_acl was build with the compiler that supports AVX2,
this method is selected as default one on HW that supports AVX2.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
lib/librte_acl/Makefile
lib/librte_acl/acl.h
lib/librte_acl/acl_run.h
lib/librte_acl/acl_run_avx2.c [new file with mode: 0644]
lib/librte_acl/acl_run_avx2.h [new file with mode: 0644]
lib/librte_acl/acl_run_sse.c
lib/librte_acl/acl_run_sse.h [new file with mode: 0644]
lib/librte_acl/rte_acl.c
lib/librte_acl/rte_acl.h