Hi Ferruh, > -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@intel.com> > Sent: Monday, April 20, 2020 10:51 PM > To: Gavin Hu <gavin...@arm.com>; dev@dpdk.org > Cc: nd <n...@arm.com>; david.march...@redhat.com; > tho...@monjalon.net; jer...@marvell.com; xiaolong...@intel.com; > Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>; Ruifeng Wang > <ruifeng.w...@arm.com>; Phil Yang <phil.y...@arm.com>; Joyce Kong > <joyce.k...@arm.com>; Steve Capper <steve.cap...@arm.com>; Raslan > Darawsheh <rasl...@mellanox.com> > Subject: Re: [dpdk-dev] [PATCH v2 2/2] net/i40e: restrict pointer aliasing for > NEON vPMD > > On 4/13/2020 4:56 PM, Gavin Hu wrote: > > restrict pointer aliasing to optimize the code generated. > > > > The patch showed ~3% performnace uplift on Arm N1SDP platform, and > no > > degradation on ThunderX2. The tet case is RFC2544 zero-loss L2 > > forwarding running testpmd. > > > > [1] https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/Restricted-Pointers.html > > > > Signed-off-by: Gavin Hu <gavin...@arm.com> > > Reviewed-by: Steve Capper <steve.cap...@arm.com> > > Hi Gavin, > > Raslan supported following build error [1], this is blocking the next-net, can > you please check the error, and send a fix for it? > > [1] > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c:175:65: error: > expected > ';', ',' or ')' before 'rx_pkts' > desc_to_ptype_v(uint64x2_t descs[4], struct rte_mbuf **restrict rx_pkts, > ^ > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c:197:51: error: > expected > ';', ',' or ')' before 'rxq' > _recv_raw_pkts_vec(struct i40e_rx_queue *restrict rxq, struct rte_mbuf > ^ > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c:435:35: error: > expected > ';', ',' or ')' before 'rx_queue' > i40e_recv_pkts_vec(void *restrict rx_queue, struct rte_mbuf **restrict > rx_pkts, > ^ > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c: In function > 'i40e_recv_scattered_pkts_vec': > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c:456:2: error: > implicit > declaration of function '_recv_raw_pkts_vec' [-Werror=implicit-function- > declaration] > uint16_t nb_bufs = _recv_raw_pkts_vec(rxq, rx_pkts, nb_pkts, > ^ > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c:456:2: error: > nested extern > declaration of '_recv_raw_pkts_vec' [-Werror=nested-externs] > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c: At top level: > /download/dpdk/drivers/net/i40e/i40e_rxtx_vec_neon.c:507:42: error: > expected > ';', ',' or ')' before 'tx_queue' > i40e_xmit_fixed_burst_vec(void *restrict tx_queue, > > > gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) > seen this with T=arm64-bluefield-linuxapp-gcc and T=arm64-armv8a-linux- > gcc > using make
Sorry for the leakage, I submitted a patch to fix this: http://patches.dpdk.org/patch/69006/ It was verified with gcc 4.8.5 and gcc-8, as well as meson + clang.