From: "Ruifeng Wang (Arm Technology China)" <Ruifeng.Wang@arm.com>
To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>,
"thomas@monjalon.net" <thomas@monjalon.net>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"jerinj@marvell.com" <jerinj@marvell.com>,
Marko Kovacevic <marko.kovacevic@intel.com>,
Ori Kam <orika@mellanox.com>,
Bruce Richardson <bruce.richardson@intel.com>,
Pablo de Lara <pablo.de.lara.guarch@intel.com>,
Radu Nicolau <radu.nicolau@intel.com>,
"Akhil.goyal@nxp.com" <akhil.goyal@nxp.com>,
Tomasz Kantecki <tomasz.kantecki@intel.com>,
"stable@dpdk.org" <stable@dpdk.org>, nd <nd@arm.com>
Subject: Re: [dpdk-dev] [PATCH] examples/l3fwd: fix em mode datapath selection
Date: Wed, 24 Apr 2019 02:59:10 +0000 [thread overview]
Message-ID: <AM0PR08MB4418D36921430BB7A2D8B7659E3C0@AM0PR08MB4418.eurprd08.prod.outlook.com> (raw)
Message-ID: <20190424025910.I07PYv01mZaDwOU8R0qwfq6RxrbFeXNJ2WwGbi20rqI@z> (raw)
In-Reply-To: <CY4PR1801MB1863AA6B1B67EDA328C33782DE230@CY4PR1801MB1863.namprd18.prod.outlook.com>
Hi,
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Pavan Nikhilesh
> Bhagavatula
> Sent: Tuesday, April 23, 2019 17:13
> To: thomas@monjalon.net
> Cc: dev@dpdk.org; jerinj@marvell.com; Marko Kovacevic
> <marko.kovacevic@intel.com>; Ori Kam <orika@mellanox.com>; Bruce
> Richardson <bruce.richardson@intel.com>; Pablo de Lara
> <pablo.de.lara.guarch@intel.com>; Radu Nicolau <radu.nicolau@intel.com>;
> Akhil.goyal@nxp.com; Tomasz Kantecki <tomasz.kantecki@intel.com>;
> stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] examples/l3fwd: fix em mode datapath
> selection
>
>
>
> >-----Original Message-----
> >From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> >Sent: Tuesday, April 23, 2019 2:05 PM
> >To: Pavan Nikhilesh Bhagavatula <pbhagavatula@marvell.com>
> >Cc: dev@dpdk.org; Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Marko
> >Kovacevic <marko.kovacevic@intel.com>; Ori Kam <orika@mellanox.com>;
> >Bruce Richardson <bruce.richardson@intel.com>; Pablo de Lara
> ><pablo.de.lara.guarch@intel.com>; Radu Nicolau
> ><radu.nicolau@intel.com>; Akhil Goyal <akhil.goyal@nxp.com>; Tomasz
> >Kantecki <tomasz.kantecki@intel.com>; stable@dpdk.org
> >Subject: Re: [dpdk-dev] [PATCH] examples/l3fwd: fix em mode datapath
> >selection
> >
> >23/04/2019 04:47, Pavan Nikhilesh Bhagavatula:
> >>From: Thomas Monjalon <thomas@monjalon.net>
> >> >10/04/2019 09:29, Pavan Nikhilesh Bhagavatula:
> >> >> From: Pavan Nikhilesh <pbhagavatula@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@dpdk.org
> >> >>
> >> >> Signed-off-by: Pavan Nikhilesh <pbhagavatula@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.
>
> That will lead to undefined and redefined error:
>
> [dpdk] # make -C examples/l3fwd
> make: Entering directory '/root/pavan/dpdk-int/examples/l3fwd'
> CC main.o
> CC l3fwd_lpm.o
> In file included from /root/dpdk/examples/l3fwd/l3fwd_lpm.c:28:0:
> /root/dpdk/examples/l3fwd/l3fwd.h:14:6: error:
> "NO_HASH_MULTI_LOOKUP" is not defined, evaluates to 0 [-Werror=undef]
> #if !NO_HASH_MULTI_LOOKUP &&
> defined(RTE_MACHINE_CPUFLAG_NEON)
>
> [dpdk] # EXTRA_CFLAGS='-DNO_HASH_MULTI_LOOKUP=0' make -C
> examples/l3fwd
> make: Entering directory '/root/dpdk/examples/l3fwd'
> CC main.o ]
> #define NO_HASH_MULTI_LOOKUP 1
> n file included from /root/dpdk/examples/l3fwd/l3fwd_lpm.c:28:0:
> <command-line>:0:0: note:
> ] #define
> NO_HASH_MULTI_LOOKUP 1is the location of the previous definition
>
> >
> >
Actually I looked at this EM lookup mode selection issue as well, and my first solution is the same as yours :)
I didn't find out a way to enable selection without using compile options (-DNO_HASH_MULTI_LOOKUP etc.).
Maybe we can use both HASH_MULTI_LOOKUP and NO_HASH_MULTI_LOOKUP like below:
--- a/examples/l3fwd/l3fwd.h
+++ b/examples/l3fwd/l3fwd.h
@@ -11,8 +11,8 @@
#define RTE_LOGTYPE_L3FWD RTE_LOGTYPE_USER1
-#if !defined(NO_HASH_MULTI_LOOKUP) && defined(RTE_MACHINE_CPUFLAG_NEON)
-#define NO_HASH_MULTI_LOOKUP 1
+#if !defined(HASH_MULTI_LOOKUP) && defined(RTE_MACHINE_CPUFLAG_NEON)
+#define NO_HASH_MULTI_LOOKUP
#endif
Not sure if this is a good idea.
PS: if we are controlling selection using compile options, it is better to be documented somewhere.
next prev parent reply other threads:[~2019-04-24 2:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-10 7:29 Pavan Nikhilesh Bhagavatula
2019-04-10 7:29 ` Pavan Nikhilesh Bhagavatula
2019-04-22 21:20 ` Thomas Monjalon
2019-04-22 21:20 ` Thomas Monjalon
2019-04-23 2:47 ` Pavan Nikhilesh Bhagavatula
2019-04-23 2:47 ` Pavan Nikhilesh Bhagavatula
2019-04-23 8:35 ` Thomas Monjalon
2019-04-23 8:35 ` Thomas Monjalon
2019-04-23 9:12 ` Pavan Nikhilesh Bhagavatula
2019-04-23 9:12 ` Pavan Nikhilesh Bhagavatula
2019-04-24 2:59 ` Ruifeng Wang (Arm Technology China) [this message]
2019-04-24 2:59 ` Ruifeng Wang (Arm Technology China)
2019-05-02 23:32 ` Thomas Monjalon
2019-05-02 23:32 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AM0PR08MB4418D36921430BB7A2D8B7659E3C0@AM0PR08MB4418.eurprd08.prod.outlook.com \
--to=ruifeng.wang@arm.com \
--cc=akhil.goyal@nxp.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=marko.kovacevic@intel.com \
--cc=nd@arm.com \
--cc=orika@mellanox.com \
--cc=pablo.de.lara.guarch@intel.com \
--cc=pbhagavatula@marvell.com \
--cc=radu.nicolau@intel.com \
--cc=stable@dpdk.org \
--cc=thomas@monjalon.net \
--cc=tomasz.kantecki@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).