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

Pavan Nikhilesh pbhagavatula at caviumnetworks.com
Mon Apr 23 10:44:34 CEST 2018


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.

Thanks,
Pavan.

On Sun, Apr 22, 2018 at 04:03:36PM +0000, Ali Alnubani wrote:
> Hi Pavan,
>
> The patchset http://dpdk.org/ml/archives/dev/2018-April/094928.html 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 <http://bugzilla.redhat.com/bugzilla> 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