On Wed, 2019-01-02 at 13:28 +0800, Ruifeng Wang wrote: > ------------------------------------------------------------------- > --- > Compile option for hash_multi_lookup was broken, and caused feature > cannot be enabled on Arm. > This patch sets hash_multi_lookup method as default, and sequential > lookup becomes optional. > > In test of 8192 flows with 128-byte packets, throughput increased by > 25.6% after enabling hash_multi_lookup.
# Are you changing l3fwd source code to test with 8K flows? meaning it has only a few flows for hit case. # Are you testing with ThunderX2? # Can you check with single flow with 64B and one core? In my case, I am getting >20% regression with octeontx. Command used: #./l3fwd -c 0x800000 -n 4 -- -P -E -p 0x3 --config="(0, 0, 23),(1,0,23)" In addition to that, The file examples/l3fwd/l3fwd_em_hlm.h has following change, Not sure why we need ARM64 specific change there? #ifdef RTE_ARCH_ARM64 #define EM_HASH_LOOKUP_COUNT 16 #else #define EM_HASH_LOOKUP_COUNT 8 #endif > Fixes: 52c97adc1f0f ("examples/l3fwd: fix exact match performance") > Cc: tomaszx.kula...@intel.com > > Signed-off-by: Ruifeng Wang <ruifeng.w...@arm.com> > Reviewed-by: Gavin Hu <gavin...@arm.com> > Reviewed-by: Phil Yang <phil.y...@arm.com> > Tested-by: Ruifeng Wang <ruifeng.w...@arm.com> > --- > examples/l3fwd/l3fwd.h | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/examples/l3fwd/l3fwd.h b/examples/l3fwd/l3fwd.h > index c962deac3..063b80018 100644 > --- a/examples/l3fwd/l3fwd.h > +++ b/examples/l3fwd/l3fwd.h > @@ -11,10 +11,6 @@ > > #define RTE_LOGTYPE_L3FWD RTE_LOGTYPE_USER1 > > -#if !defined(NO_HASH_MULTI_LOOKUP) && > defined(RTE_MACHINE_CPUFLAG_NEON) > -#define NO_HASH_MULTI_LOOKUP 1 > -#endif > - > #define MAX_PKT_BURST 32 > #define BURST_TX_DRAIN_US 100 /* TX drain every ~100us */ >