[dpdk-dev] event/octeontx: add event timer adapter driver

Jerin Jacob jerin.jacob at caviumnetworks.com
Sun May 6 15:33:23 CEST 2018


-----Original Message-----
> Date: Sun, 6 May 2018 13:17:55 +0000
> From: Shahaf Shuler <shahafs at mellanox.com>
> To: Pavan Nikhilesh <pbhagavatula at caviumnetworks.com>, Ali Alnubani
>  <alialnu at mellanox.com>, Thomas Monjalon <thomas at monjalon.net>, Raslan
>  Darawsheh <rasland at mellanox.com>, "jerin.jacob at caviumnetworks.com"
>  <jerin.jacob at caviumnetworks.com>
> CC: "dev at dpdk.org" <dev at dpdk.org>
> Subject: RE: event/octeontx: add event timer adapter driver
> 
> Monday, April 23, 2018 11:45 AM, Pavan Nikhilesh:
> > Subject: Re: event/octeontx: add event timer adapter driver
> > 
> > Hi Ali,
> > 
> > Looks like a compiler bug rather than code issue, I have verified this on x86
> > with gcc 4.8.5 and don't see an issue.
> > 
> > Looking around I found that compiling with -O1 on aarch64 gcc 4.8.5 seems to
> > fix the compiler bug.
> 
> Even if compiler bug, can we W.A in the PMD code? Surely you want your PMD to be compiled in most/all inbox gcc compilers. 
> 
> Here is even more problematic since it means DPDK doesn't compile natively on aarch with RH7.5. not sure how octeontx PMD can be enabled by default with such case. 


One option could be disable the specific driver for specific GCC
version IF GCC VERSION IS BUGGY instead of disabling.

For arm64 being relativity new architecture, support for OLD compilers
are not that good NOR really in use.

> 
> 
> > 
> > Thanks,
> > Pavan.
> > 
> > On Sun, Apr 22, 2018 at 04:03:36PM +0000, Ali Alnubani wrote:
> > > Hi Pavan,
> > >
> > > The patchset
> > https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
> > k.org%2Fml%2Farchives%2Fdev%2F2018-
> > April%2F094928.html&data=02%7C01%7Cshahafs%40mellanox.com%7C0829
> > 941a97144eed811508d5a8f680c8%7Ca652971c7d2e4d9ba6a4d149256f461b%7
> > C0%7C0%7C636600699041780885&sdata=hyAPljSPsY5PY2Had7vNwF5JX1zC0T
> > i8WLEZr1lzhwo%3D&reserved=0 is causing a compilation error on
> > QUALCOMM ARM with RHEL7.5 and gcc version 4.8.5:
> > >
> > > """
> > > /download/dpdk-next-net-mlx/drivers/event/octeontx/timvf_worker.c:
> > In function 'timvf_timer_arm_burst_sp':
> > > /download/dpdk-next-net-
> > mlx/drivers/event/octeontx/timvf_worker.c:89:1
> > > : error: could not split insn } ^ (insn 95 98 99 (parallel [
> > >             (set (reg:DI 0 x0 [orig:98 D.8130 ] [98])
> > >                 (mem/v:DI (reg/f:DI 21 x21 [orig:88 D.8136 ] [88]) [-1  S8 A64]))
> > >             (set (mem/v:DI (reg/f:DI 21 x21 [orig:88 D.8136 ] [88]) [-1  S8 A64])
> > >                 (unspec_volatile:DI [
> > >                         (plus:DI (mem/v:DI (reg/f:DI 21 x21 [orig:88 D.8136 ] [88]) [-1  S8
> > A64])
> > >                             (const_int -281474976710656 [0xffff000000000000]))
> > >                         (const_int 0 [0])
> > >                     ] UNSPECV_ATOMIC_OP))
> > >             (clobber (reg:CC 66 cc))
> > >             (clobber (reg:DI 1 x1))
> > >             (clobber (reg:SI 2 x2))
> > >         ]) /download/dpdk-next-net-
> > mlx/drivers/event/octeontx/timvf_worker.h:95 1832 {atomic_fetch_adddi}
> > >      (expr_list:REG_UNUSED (reg:CC 66 cc)
> > >         (expr_list:REG_UNUSED (reg:SI 2 x2)
> > >             (expr_list:REG_UNUSED (reg:DI 1 x1)
> > >                 (nil)))))
> > > /download/dpdk-next-net-
> > mlx/drivers/event/octeontx/timvf_worker.c:89:1
> > > : internal compiler error: in final_scan_insn, at final.c:2897 Please
> > > submit a full bug report, with preprocessed source if appropriate.
> > > See
> > <https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbu
> > gzilla.redhat.com%2Fbugzilla&data=02%7C01%7Cshahafs%40mellanox.com%
> > 7C0829941a97144eed811508d5a8f680c8%7Ca652971c7d2e4d9ba6a4d149256f
> > 461b%7C0%7C0%7C636600699041780885&sdata=bPZVI%2BkCTkDrHmUscl%2
> > FqJyuwe%2BmZw795yiAvoUX%2BPE8%3D&reserved=0> for instructions.
> > >   PMDINFO opdl_evdev.o.pmd.c
> > >   CC opdl_evdev.o.pmd.o
> > >   LD opdl_evdev.o
> > >   PMDINFO sw_evdev.o.pmd.c
> > >   CC sw_evdev.o.pmd.o
> > >   LD sw_evdev.o
> > > Preprocessed source stored into /tmp/ccmqxmH7.out file, please attach
> > this to your bugreport.
> > > make[6]: *** [timvf_worker.o] Error 1
> > > make[5]: *** [octeontx] Error 2
> > > make[5]: *** Waiting for unfinished jobs....
> > >   AR librte_pmd_opdl_event.a
> > >   INSTALL-LIB librte_pmd_opdl_event.a
> > >   AR librte_pmd_sw_event.a
> > >   INSTALL-LIB librte_pmd_sw_event.a
> > > make[4]: *** [event] Error 2
> > > make[3]: *** [drivers] Error 2
> > > make[2]: *** [all] Error 2
> > > make[1]: *** [pre_install] Error 2
> > > make: *** [install] Error
> > > """
> > >
> > > The compilation only passes with CONFIG_RTE_LIBRTE_OCTEONTX_PMD,
> > CONFIG_RTE_LIBRTE_PMD_OCTEONTX_SSOVF and
> > CONFIG_RTE_LIBRTE_OCTEONTX_MEMPOOL set to false.
> > > It also passes if I upgrade gcc, but can we have a fix for old gcc versions?
> > >
> > > Thanks,
> > > Ali
> 


More information about the dev mailing list