mbuf: rename RTE_MBUF_SCATTER_GATHER into RTE_MBUF_REFCNT
[dpdk.git] / lib / librte_pmd_ixgbe / ixgbe_rxtx_vec.c
index 09e19a3..047acf0 100644 (file)
 #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;
@@ -277,7 +258,7 @@ ixgbe_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
                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]);
@@ -288,7 +269,7 @@ ixgbe_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
                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();
@@ -338,7 +319,7 @@ ixgbe_recv_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
                                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;
@@ -404,7 +385,7 @@ ixgbe_tx_free_bufs(struct igb_tx_queue *txq)
        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];
@@ -427,7 +408,7 @@ ixgbe_tx_free_bufs(struct igb_tx_queue *txq)
 
        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)