numam-dpdk/lib/librte_acl
Konstantin Ananyev 62945e029e acl: introduce config parameter for performance/space trade-off
If at build phase we don't make any trie splitting,
then temporary build structures and resulting RT structure might be
much bigger than current.
>From other side - having just one trie instead of multiple can speedup
search quite significantly.
>From my measurements on rule-sets with ~10K rules:
RT table up to 8 times bigger, classify() up to 80% faster
than current implementation.
To make it possible for the user to decide about performance/space trade-off -
new parameter for build config structure (max_size) is introduced.
Setting it to the value greater than zero, instructs  rte_acl_build() to:
- make sure that size of RT table wouldn't exceed given value.
- attempt to minimise number of tries in the table.
Setting it to zero maintains current behaviour.
That introduces a minor change in the public API, but I think the possible
performance gain is too big to ignore it.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
2015-01-28 17:11:26 +01:00
..
acl_bld.c acl: introduce config parameter for performance/space trade-off 2015-01-28 17:11:26 +01:00
acl_gen.c acl: introduce config parameter for performance/space trade-off 2015-01-28 17:11:26 +01:00
acl_run_avx2.c acl: use scalar method fastest for some cases 2015-01-28 17:11:25 +01:00
acl_run_avx2.h acl: deduplicate some SSE and AVX2 code 2015-01-28 17:11:25 +01:00
acl_run_scalar.c acl: deduplicate a bit of RT code 2015-01-28 17:11:25 +01:00
acl_run_sse.c acl: use scalar method fastest for some cases 2015-01-28 17:11:25 +01:00
acl_run_sse.h acl: deduplicate some SSE and AVX2 code 2015-01-28 17:11:25 +01:00
acl_run.h acl: use scalar method fastest for some cases 2015-01-28 17:11:25 +01:00
acl_vect.h acl: deduplicate some SSE and AVX2 code 2015-01-28 17:11:25 +01:00
acl.h acl: introduce config parameter for performance/space trade-off 2015-01-28 17:11:26 +01:00
Makefile acl: add AVX2 classify method 2015-01-28 17:11:25 +01:00
rte_acl_osdep_alone.h eal: introduce ymm type for AVX 256-bit 2015-01-28 17:11:25 +01:00
rte_acl_osdep.h acl: new library 2014-06-14 01:29:45 +02:00
rte_acl.c acl: introduce config parameter for performance/space trade-off 2015-01-28 17:11:26 +01:00
rte_acl.h acl: introduce config parameter for performance/space trade-off 2015-01-28 17:11:26 +01:00
tb_mem.c acl: fix comments typos 2014-11-14 17:23:50 +01:00
tb_mem.h acl: fix comments typos 2014-11-14 17:23:50 +01:00