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

Pavan Nikhilesh Bhagavatula pbhagavatula at marvell.com
Tue Apr 23 04:47:44 CEST 2019



>-----Original Message-----
>From: Thomas Monjalon <thomas at monjalon.net>
>Sent: Tuesday, April 23, 2019 2:51 AM
>To: Pavan Nikhilesh Bhagavatula <pbhagavatula at marvell.com>
>Cc: dev at dpdk.org; Jerin Jacob Kollanukkaran <jerinj at marvell.com>; Marko
>Kovacevic <marko.kovacevic at intel.com>; Ori Kam <orika at mellanox.com>;
>Bruce Richardson <bruce.richardson at intel.com>; Pablo de Lara
><pablo.de.lara.guarch at intel.com>; Radu Nicolau <radu.nicolau at intel.com>;
>Akhil Goyal <akhil.goyal at nxp.com>; Tomasz Kantecki
><tomasz.kantecki at intel.com>; stable at dpdk.org
>Subject: Re: [dpdk-dev] [PATCH] examples/l3fwd: fix em mode datapath
>selection
>
>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.

Regards,
Pavan



More information about the stable mailing list