23/04/2019 04:47, Pavan Nikhilesh Bhagavatula: >From: Thomas Monjalon <tho...@monjalon.net> > >10/04/2019 09:29, Pavan Nikhilesh Bhagavatula: > >> From: Pavan Nikhilesh <pbhagavat...@marvell.com> > >> > >> Currently, l3wfd em mode has two datapath modes em_sequential and > >> em_hlm. We can select either of them by defining > >NO_HASH_MULTI_LOOKUP > >> to one or zero. > >> The code checks if NO_HASH_MULTI_LOOKUP is defined or not instead of > >> checking for the value. > >> > >> Fixes: 52c97adc1f0f ("examples/l3fwd: fix exact match performance") > >> Cc: sta...@dpdk.org > >> > >> Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > >> --- > >> --- a/examples/l3fwd/l3fwd_em.c > >> +++ b/examples/l3fwd/l3fwd_em.c > >> #if defined RTE_ARCH_X86 || defined RTE_MACHINE_CPUFLAG_NEON -#if > >> defined(NO_HASH_MULTI_LOOKUP) > >> +#if NO_HASH_MULTI_LOOKUP > > > >A quick grep shows that it used in another place with #ifdef: > > > >examples/l3fwd/l3fwd.h:#if !defined(NO_HASH_MULTI_LOOKUP) && > >defined(RTE_MACHINE_CPUFLAG_NEON) > > > > > > #if !defined(NO_HASH_MULTI_LOOKUP) && defined(RTE_MACHINE_CPUFLAG_NEON) > #define NO_HASH_MULTI_LOOKUP 1 > #endif > > This macro is used to set l3fwd_em_sequential as the default EM datapath on > AARCH64 > as its performance is better. (http://patches.dpdk.org/patch/49372/) > > make -C examples/l3fwd #Selects l3fwd_em_sequential by default on > AARCH 64 > > Currently, we cannot select em_hlm without manually editing the macro as > using the below command still > sets em_sequential as the default datapath because the macro modified in the > patch that selects the datapath > checks if NO_HASH_MULTI_LOOKUP is defined or not rather than its value. > > EXTRA_CFLAGS='-DNO_HASH_MULTI_LOOKUP=0' make -C examples/l3fwd > > I hope I cleared up things a bit.
In my understanding, we should check the value in the other case too, instead of #if defined.