[dpdk-dev] [PATCH] mk: change TLS model for ARMv8 and DPAA machine

Jerin Jacob jerin.jacob at caviumnetworks.com
Sun Jun 24 14:27:53 CEST 2018


-----Original Message-----
> Date: Thu, 14 Jun 2018 06:42:40 +0000
> From: Sachin Saxena <sachin.saxena at nxp.com>
> To: Jerin Jacob <jerin.jacob at caviumnetworks.com>
> CC: Hemant Agrawal <hemant.agrawal at nxp.com>, "dev at dpdk.org" <dev at dpdk.org>,
>  "nitin.saxena at cavium.com" <nitin.saxena at cavium.com>,
>  "narayanaprasad.athreya at cavium.com" <narayanaprasad.athreya at cavium.com>
> Subject: RE: [dpdk-dev] [PATCH] mk: change TLS model for ARMv8 and DPAA
>  machine
> 
> 
> > -----Original Message-----
> > From: Jerin Jacob [mailto:jerin.jacob at caviumnetworks.com]
> > Sent: Monday, June 11, 2018 1:15 PM
> > To: Sachin Saxena <sachin.saxena at nxp.com>
> > Cc: Hemant Agrawal <hemant.agrawal at nxp.com>; dev at dpdk.org;
> > nitin.saxena at cavium.com; narayanaprasad.athreya at cavium.com
> > Subject: Re: [dpdk-dev] [PATCH] mk: change TLS model for ARMv8 and DPAA
> > machine
> >
> 
> [....]
> 
> > > > > Signed-off-by: Sachin Saxena <sachin.saxena at nxp.com>
> > > > > ---
> > > > >  mk/machine/armv8a/rte.vars.mk | 3 +++
> > > > >  mk/machine/dpaa/rte.vars.mk   | 3 +++
> > > > >  mk/machine/dpaa2/rte.vars.mk  | 3 +++
> > > > >  3 files changed, 9 insertions(+)
> > > > >
> > > > > diff --git a/mk/machine/armv8a/rte.vars.mk
> > > > > b/mk/machine/armv8a/rte.vars.mk index 8252efb..6897cd6 100644
> > > > > --- a/mk/machine/armv8a/rte.vars.mk
> > > > > +++ b/mk/machine/armv8a/rte.vars.mk
> > > > > @@ -29,3 +29,6 @@
> > > > >  # CPU_ASFLAGS =
> > > > >
> > > > >  MACHINE_CFLAGS += -march=armv8-a+crc+crypto
> > > > > +
> > > > > +# To avoid TLS corruption issue.
> > > > > +MACHINE_CFLAGS += -mtls-dialect=trad
> > > >
> > > > This issue is not reproducible on Cavium ARMv8 platforms. Just
> > > > wondering, Do we need to change default ARMv8 config?
> > > [Sachin Saxena]  The issue is currently visible On NXP platforms with VPP-
> > dpdk solution only. Similar behavior like random crashes or initialization
> > failures have been seen by Cavium guys on VPP but they are still
> > investigating whether the issues are related to TLS corruption.
> >
> > I checked with Cavium-VPP team. According to them, they are not facing any
> > issue related to TLS
> >
> [Sachin Saxena] Some more information. - The issue is appearing on NXP ARM platforms as DPDK drivers are also using __thread TLS variables. If the total number of TLS variables (main application + dpdk shared Lib) increases beyond Static TLS Size limit, one will start facing issue like Corruption in TLS variable values.

OK. Then it is generic problem. Any information on what is the limit of
number of __thread variable ? Is it possible to increase that limit by gcc command line arguments?
You may not have answers for this, but, could you ask in Linaro/gcc mailing list.

If it is fixed in some specific gcc/glibc version and applying blindly to
all GCC versions is not good IMO.


More information about the dev mailing list