dition */ + /* A.1 load desc[3] */ +- descs[3] = *RTE_CAST_PTR(__vector unsigned long *, rxdp + 3); ++ descs[3] = *RTE_CAST_PTR(__vector unsigned long long *, rxdp + 3); + rte_compiler_barrier(); + + /* B.2 copy 2 mbuf point into rx_pkts */ +- *(__vector unsigned long *)&rx_pkts[pos] = mbp1; ++ *(__vector unsigned long long *)&rx_pkts[pos] = mbp1; + + /* B.1 load 2 mbuf point */ +- mbp2 = *(__vector unsigned long *)&sw_ring[pos + 2]; ++ mbp2 = *(__vector unsigned long long *)&sw_ring[pos + 2]; + + /* A.1 load desc[2-0] */ +- descs[2] = *RTE_CAST_PTR(__vector unsigned long *, rxdp + 2); ++ descs[2] = *RTE_CAST_PTR(__vector unsigned long long *, rxdp + 2); + rte_compiler_barrier(); +- descs[1] = *RTE_CAST_PTR(__vector unsigned long *, rxdp + 1); ++ descs[1] = *RTE_CAST_PTR(__vector unsigned long long *, rxdp + 1); + rte_compiler_barrier(); +- descs[0] = *RTE_CAST_PTR(__vector unsigned long *, rxdp); ++ descs[0] = *RTE_CAST_PTR(__vector unsigned long long *, rxdp); + + /* B.2 copy 2 mbuf point into rx_pkts */ +- *(__vector unsigned long *)&rx_pkts[pos + 2] = mbp2; ++ *(__vector unsigned long long *)&rx_pkts[pos + 2] = mbp2; + + if (split_packet) { + rte_mbuf_prefetch_part2(rx_pkts[pos]); +@@ -246,8 +246,8 @@ + (__vector unsigned int){0, 0, 0, PKTLEN_SHIFT}); + + /* merge the now-aligned packet length fields back in */ +- descs[3] = (__vector unsigned long)len3; +- descs[2] = (__vector unsigned long)len2; ++ descs[3] = (__vector unsigned long long)len3; ++ descs[2] = (__vector unsigned long long)len2; + + /* D.1 pkt 3,4 convert format from desc to pktmbuf */ + pkt_mb4 = vec_perm((__vector unsigned char)descs[3], +@@ -276,8 +276,8 @@ + (__vector unsigned int){0, 0, 0, PKTLEN_SHIFT}); + + /* merge the now-aligned packet length fields back in */ +- descs[1] = (__vector unsigned long)len1; +- descs[0] = (__vector unsigned long)len0; ++ descs[1] = (__vector unsigned long long)len1; ++ descs[0] = (__vector unsigned long long)len0; + + /* D.1 pkt 1,2 convert format from desc to pktmbuf */ + pkt_mb2 = vec_perm((__vector unsigned char)descs[1], +@@ -353,8 +353,8 @@ + desc_to_olflags_v(descs, &rx_pkts[pos]); + + /* C.4 calc available number of desc */ +- var = rte_popcount64((vec_ld(0, +- (__vector unsigned long *)&staterr)[0])); ++ var = rte_popcount64(((__vector unsigned long long)vec_ld(0, ++ (__vector unsigned short *)&staterr))[0]); + nb_pkts_recd += var; + if (likely(var != I40E_VPMD_DESCS_PER_LOOP)) + break; +@@ -453,9 +453,9 @@ + ((uint64_t)flags << I40E_TXD_QW1_CMD_SHIFT) | + ((uint64_t)pkt->data_len << I40E_TXD_QW1_TX_BUF_SZ_SHIFT)); + +- __vector unsigned long descriptor = (__vector unsigned long){ ++ __vector unsigned long long descriptor = (__vector unsigned long long){ + pkt->buf_iova + pkt->data_off, high_qw}; +- *RTE_CAST_PTR(__vector unsigned long *, txdp) = descriptor; ++ *RTE_CAST_PTR(__vector unsigned long long *, txdp) = descriptor; + } + + static inline void diff --git a/net/dpdk/files/patch-lib_eal_ppc_include_rte__cycles.h b/net/dpdk/files/patch-lib_eal_ppc_include_rte__cycles.h new file mode 100644 index 000000000000..06ce90de33ca --- /dev/null +++ b/net/dpdk/files/patch-lib_eal_ppc_include_rte__cycles.h @@ -0,0 +1,12 @@ +--- lib/eal/ppc/include/rte_cycles.h.orig ++++ lib/eal/ppc/include/rte_cycles.h +@@ -5,8 +5,8 @@ + #ifndef _RTE_CYCLES_PPC_64_H_ + #define _RTE_CYCLES_PPC_64_H_ + +-#include + #ifdef __GLIBC__ ++#include + #include + #endif + diff --git a/net/dpdk/files/patch-lib_eal_ppc_rte__cycles.c b/net/dpdk/files/patch-lib_eal_ppc_rte__cycles.c new file mode 100644 index 000000000000..c02c4bf96f6d --- /dev/null +++ b/net/dpdk/files/patch-lib_eal_ppc_rte__cycles.c @@ -0,0 +1,12 @@ +--- lib/eal/ppc/rte_cycles.c.orig ++++ lib/eal/ppc/rte_cycles.c +@@ -2,8 +2,8 @@ + * Copyright (C) IBM Corporation 2019. + */ + +-#include + #ifdef __GLIBC__ ++#include + #include + #elif RTE_EXEC_ENV_LINUX + #include diff --git a/net/dpdk/pkg-plist b/net/dpdk/pkg-plist index bb8c3067f2dd..8bfa01d35f7b 100644 --- a/net/dpdk/pkg-plist +++ b/net/dpdk/pkg-plist @@ -74,12 +74,13 @@ include/rte_acc_common_cfg.h include/rte_acl.h include/rte_acl_osdep.h include/rte_alarm.h +%%POWERPC64LE%%include/rte_altivec.h include/rte_approx.h include/rte_argparse.h include/rte_arp.h include/rte_atomic.h -include/rte_atomic_32.h -include/rte_atomic_64.h +%%NOTPOWERPC64LE%%include/rte_atomic_32.h +%%NOTPOWERPC64LE%%include/rte_atomic_64.h include/rte_bbdev.h include/rte_bbdev_op.h include/rte_bbdev_pmd.h @@ -430,9 +431,9 @@ lib/dpdk/pmds-%%LIBVER%%/librte_common_ionic.so.%%LIBVER%% lib/dpdk/pmds-%%LIBVER%%/librte_common_qat.so lib/dpdk/pmds-%%LIBVER%%/librte_common_qat.so.%%LIBMAJOR%% lib/dpdk/pmds-%%LIBVER%%/librte_common_qat.so.%%LIBVER%% -lib/dpdk/pmds-%%LIBVER%%/librte_common_sfc_efx.so -lib/dpdk/pmds-%%LIBVER%%/librte_common_sfc_efx.so.%%LIBMAJOR%% -lib/dpdk/pmds-%%LIBVER%%/librte_common_sfc_efx.so.%%LIBVER%% +%%NOTPOWERPC64LE%%lib/dpdk/pmds-%%LIBVER%%/librte_common_sfc_efx.so +%%NOTPOWERPC64LE%%lib/dpdk/pmds-%%LIBVER%%/librte_common_sfc_efx.so.%%LIBMAJOR%% +%%NOTPOWERPC64LE%%lib/dpdk/pmds-%%LIBVER%%/librte_common_sfc_efx.so.%%LIBVER%% lib/dpdk/pmds-%%LIBVER%%/librte_common_zsda.so lib/dpdk/pmds-%%LIBVER%%/librte_common_zsda.so.%%LIBMAJOR%% lib/dpdk/pmds-%%LIBVER%%/librte_common_zsda.so.%%LIBVER%% @@ -568,9 +569,9 @@ lib/dpdk/pmds-%%LIBVER%%/librte_net_r8169.so.%%LIBVER%% lib/dpdk/pmds-%%LIBVER%%/librte_net_ring.so lib/dpdk/pmds-%%LIBVER%%/librte_net_ring.so.%%LIBMAJOR%% lib/dpdk/pmds-%%LIBVER%%/librte_net_ring.so.%%LIBVER%% -lib/dpdk/pmds-%%LIBVER%%/librte_net_sfc.so -lib/dpdk/pmds-%%LIBVER%%/librte_net_sfc.so.%%LIBMAJOR%% -lib/dpdk/pmds-%%LIBVER%%/librte_net_sfc.so.%%LIBVER%% +%%NOTPOWERPC64LE%%lib/dpdk/pmds-%%LIBVER%%/librte_net_sfc.so +%%NOTPOWERPC64LE%%lib/dpdk/pmds-%%LIBVER%%/librte_net_sfc.so.%%LIBMAJOR%% +%%NOTPOWERPC64LE%%lib/dpdk/pmds-%%LIBVER%%/librte_net_sfc.so.%%LIBVER%% lib/dpdk/pmds-%%LIBVER%%/librte_net_txgbe.so lib/dpdk/pmds-%%LIBVER%%/librte_net_txgbe.so.%%LIBMAJOR%% lib/dpdk/pmds-%%LIBVER%%/librte_net_txgbe.so.%%LIBVER%% @@ -669,10 +670,10 @@ lib/librte_common_qat.a lib/librte_common_qat.so lib/librte_common_qat.so.%%LIBMAJOR%% lib/librte_common_qat.so.%%LIBVER%% -lib/librte_common_sfc_efx.a -lib/librte_common_sfc_efx.so -lib/librte_common_sfc_efx.so.%%LIBMAJOR%% -lib/librte_common_sfc_efx.so.%%LIBVER%% +%%NOTPOWERPC64LE%%lib/librte_common_sfc_efx.a +%%NOTPOWERPC64LE%%lib/librte_common_sfc_efx.so +%%NOTPOWERPC64LE%%lib/librte_common_sfc_efx.so.%%LIBMAJOR%% +%%NOTPOWERPC64LE%%lib/librte_common_sfc_efx.so.%%LIBVER%% lib/librte_common_zsda.a lib/librte_common_zsda.so lib/librte_common_zsda.so.%%LIBMAJOR%% @@ -969,10 +970,10 @@ lib/librte_net_ring.a lib/librte_net_ring.so lib/librte_net_ring.so.%%LIBMAJOR%% lib/librte_net_ring.so.%%LIBVER%% -lib/librte_net_sfc.a -lib/librte_net_sfc.so -lib/librte_net_sfc.so.%%LIBMAJOR%% -lib/librte_net_sfc.so.%%LIBVER%% +%%NOTPOWERPC64LE%%lib/librte_net_sfc.a +%%NOTPOWERPC64LE%%lib/librte_net_sfc.so +%%NOTPOWERPC64LE%%lib/librte_net_sfc.so.%%LIBMAJOR%% +%%NOTPOWERPC64LE%%lib/librte_net_sfc.so.%%LIBVER%% lib/librte_net_txgbe.a lib/librte_net_txgbe.so lib/librte_net_txgbe.so.%%LIBMAJOR%%