62945e029e
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> |
||
---|---|---|
.. | ||
acl_bld.c | ||
acl_gen.c | ||
acl_run_avx2.c | ||
acl_run_avx2.h | ||
acl_run_scalar.c | ||
acl_run_sse.c | ||
acl_run_sse.h | ||
acl_run.h | ||
acl_vect.h | ||
acl.h | ||
Makefile | ||
rte_acl_osdep_alone.h | ||
rte_acl_osdep.h | ||
rte_acl.c | ||
rte_acl.h | ||
tb_mem.c | ||
tb_mem.h |