[dpdk-dev] [PATCH v2 2/2] net/i40e: restrict pointer aliasing for NEON vPMD

Ferruh Yigit ferruh.yigit at intel.com
Mon Apr 20 16:51:08 CEST 2020


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.hu at arm.com>
> Reviewed-by: Steve Capper <steve.capper at 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



More information about the dev mailing list