#include "ixgbe_ethdev.h"
#include "ixgbe_rxtx.h"
-#include <nmmintrin.h>
+#include <tmmintrin.h>
#ifndef __INTEL_COMPILER
#pragma GCC diagnostic ignored "-Wcast-qual"
#endif
-static struct rte_mbuf mb_def = {
-
- .ol_flags = 0,
- {
- .pkt = {
- .data_len = 0,
- .pkt_len = 0,
-
- .vlan_macip = {
- .data = 0,
- },
- .hash = {
- .rss = 0,
- },
-
- .nb_segs = 1,
- .in_port = 0,
-
- .next = NULL,
- .data = NULL,
- },
- },
-};
-
static inline void
ixgbe_rxq_rearm(struct igb_rx_queue *rxq)
{
+ static const struct rte_mbuf mb_def = {
+ .pkt = {
+ .nb_segs = 1,
+ },
+ };
int i;
uint16_t rx_id;
volatile union ixgbe_adv_rx_desc *rxdp;
descs[3] = _mm_loadu_si128((__m128i *)(rxdp + 3));
/* B.2 copy 2 mbuf point into rx_pkts */
- _mm_store_si128((__m128i *)&rx_pkts[pos], mbp1);
+ _mm_storeu_si128((__m128i *)&rx_pkts[pos], mbp1);
/* B.1 load 1 mbuf point */
mbp2 = _mm_loadu_si128((__m128i *)&sw_ring[pos+2]);
descs[0] = _mm_loadu_si128((__m128i *)(rxdp));
/* B.2 copy 2 mbuf point into rx_pkts */
- _mm_store_si128((__m128i *)&rx_pkts[pos+2], mbp2);
+ _mm_storeu_si128((__m128i *)&rx_pkts[pos+2], mbp2);
/* avoid compiler reorder optimization */
rte_compiler_barrier();
pkt_mb1);
/* C.4 calc avaialbe number of desc */
- var = _mm_popcnt_u64(_mm_cvtsi128_si64(staterr));
+ var = __builtin_popcountll(_mm_cvtsi128_si64(staterr));
nb_pkts_recd += var;
if (likely(var != RTE_IXGBE_DESCS_PER_LOOP))
break;
struct igb_tx_entry_seq *txsp;
uint32_t status;
uint32_t n, k;
-#ifdef RTE_MBUF_SCATTER_GATHER
+#ifdef RTE_MBUF_REFCNT
uint32_t i;
int nb_free = 0;
struct rte_mbuf *m, *free[RTE_IXGBE_TX_MAX_FREE_BUF_SZ];
while (n > 0) {
k = RTE_MIN(n, txsp[n-1].same_pool);
-#ifdef RTE_MBUF_SCATTER_GATHER
+#ifdef RTE_MBUF_REFCNT
for (i = 0; i < k; i++) {
m = __rte_pktmbuf_prefree_seg((txep+n-k+i)->mbuf);
if (m != NULL)