On Tue, 16 Apr 2019 17:03:47 +0000
Jerin Jacob Kollanukkaran <jer...@marvell.com> wrote:

> > -----Original Message-----
> > From: dev <dev-boun...@dpdk.org> On Behalf Of Stephen Hemminger
> > Sent: Wednesday, April 10, 2019 10:46 PM
> > To: dev@dpdk.org
> > Cc: Stephen Hemminger <step...@networkplumber.org>
> > Subject: [dpdk-dev] [PATCH v2 2/5] eal: add accessor functions for 
> > lcore_config
> > 
> > The fields of the internal EAL core configuration are currently laid bare 
> > as part of
> > the API. This is not good practice and limits fixing issues with layout and 
> > sizes.
> > 
> > Make new accessor functions for the fields used by current drivers and
> > examples. Mark return code functions as experimental since this value might
> > change in the future and probably shouldn't have been used by non EAL code
> > anyway.
> > 
> > Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
> > Reviewed-by: David Marchand <david.march...@redhat.com>
> >  Shared Library Versions
> >  -----------------------
> > diff --git a/lib/librte_eal/common/eal_common_lcore.c
> > b/lib/librte_eal/common/eal_common_lcore.c
> > index 1cbac42286ba..6cf4d7abb0bd 100644
> > --- a/lib/librte_eal/common/eal_common_lcore.c
> > +++ b/lib/librte_eal/common/eal_common_lcore.c
> > @@ -16,6 +16,45 @@
> >  #include "eal_private.h"
> >  #include "eal_thread.h"
> > 
> > +int rte_lcore_index(int lcore_id)
> > +{
> > +   if (unlikely(lcore_id >= RTE_MAX_LCORE))
> > +           return -1;
> > +
> > +   if (lcore_id < 0)
> > +           lcore_id = (int)rte_lcore_id();
> > +
> > +   return lcore_config[lcore_id].core_index;
> > +}  
> 
> If I understand it correctly, We are planning to do this scheme only for slow 
> path functions. Right?
> Is rte_lcore_* functions comes in slow path category? I thought a few of them 
> can be used
> In fast path too.
> I am bit concerned about a low end arm cores where function invocation 
> overhead significant vs inline.
> ODP has taken a route of introducing a compile time config to choose inline 
> vs separate function to address
> the performance regression . I am not sure what would be the correct way to 
> handle this.

The lcore config itself is not accessed anywhere in fastpath of any of the 
examples.
It is usually is part of the setup process. The rte_lcore_index is only used
by lthread in a log message.

The main fastpath is rte_lcore_id() which is already done by per-thread variable
and is unchanged by these patches.

I don't have facilities to do any deep dive performance testing on ARM.

Reply via email to