[dpdk-stable] [dpdk-dev] [PATCH] examples/l3fwd: fix em mode datapath selection

Thomas Monjalon thomas at monjalon.net
Tue Apr 23 10:35:22 CEST 2019


23/04/2019 04:47, Pavan Nikhilesh Bhagavatula:
>From: Thomas Monjalon <thomas at monjalon.net>
> >10/04/2019 09:29, Pavan Nikhilesh Bhagavatula:
> >> From: Pavan Nikhilesh <pbhagavatula at 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: stable at dpdk.org
> >>
> >> Signed-off-by: Pavan Nikhilesh <pbhagavatula at 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.





More information about the stable mailing list