[dpdk-dev] [PATCH v3] examples/l3fwd: em path performance fix

Kulasek, TomaszX tomaszx.kulasek at intel.com
Tue Mar 15 17:06:46 CET 2016



> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Tuesday, March 15, 2016 15:50
> To: Kulasek, TomaszX <tomaszx.kulasek at intel.com>; Maciej Czekaj
> <maciej.czekaj at caviumnetworks.com>
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3] examples/l3fwd: em path performance fix
> 
> 2016-03-15 14:31, Kulasek, TomaszX:
> > From: Kulasek, TomaszX
> > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > There is an error:
> > > > examples/l3fwd/l3fwd_em_hlm_sse.h:72:38: error:
> > > > 	incompatible type for argument 2 of ‘_mm_and_si128’
> > >
> > > It's caused by
> > >
> > > commit 64d3955de1de4d7879a0930a6d2f501369d3445a
> > > Author: Maciej Czekaj <maciej.czekaj at caviumnetworks.com>
> > > Date:   Thu Mar 10 17:06:22 2016 +0100
> > >
> > >     examples/l3fwd: fix ARM build
> > >
> > >     Enable NEON support in exact match mode.
> > >     l3fwd example did not compile on ARM due to SSE2 instrincics used
> > >     in generic part.
> > >     Some instrinsins were used to initialize data structures and
> > > those were
> > >     replaced by ordinary structure initalization.
> > >     All SSE2 intrinsics used in forwarding, i.e. masking the IP/TCP
> header
> > >     are moved to single inline function and made arch-specific.
> > >
> > >     Signed-off-by: Maciej Czekaj <maciej.czekaj at caviumnetworks.com>
> > >
> > > Which doesn't include rework of l3fwd_em_hlm_sse.h file.
> > >
> > > When you compile it now with global "#define HASH_MULTI_LOOKUP 1"
> > > and alternative classification is used, and compilation will also fail
> now.
> > >
> > > I need a little bit more time to investigate it, because I'm not an
> > > expert in ARM. It will be nice if Maciej will help me in that.
> > >
> > > Tomasz
> >
> > Will be that ok for you to disable this path for arm?
> 
> Please, what do you mean?
> Maciej, have you looked at this issue?

This fix uses platform specific part of code which wasn't reworked in previous patch for ARM. It causes compilation error.
What I mean, is to leave current classification path for ARM and turn on alternative only for Intel platform.

Like that:

60 +#if defined(NO_HASH_MULTI_LOOKUP) || defined(__ARM_NEON)
61  #include "l3fwd_em_sse.h"
62  #else
63  #include "l3fwd_em_hlm_sse.h"



More information about the dev mailing list