use rte_prefetch_non_temporal() abstraction instead of _mm_prefetch(x, 0) to in-order to build distributor application for non x86 platforms
Signed-off-by: Jerin Jacob <jerin.jacob at caviumnetworks.com> --- examples/distributor/main.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/examples/distributor/main.c b/examples/distributor/main.c index 4e74f8f..c0201a9 100644 --- a/examples/distributor/main.c +++ b/examples/distributor/main.c @@ -42,6 +42,7 @@ #include <rte_cycles.h> #include <rte_malloc.h> #include <rte_debug.h> +#include <rte_prefetch.h> #include <rte_distributor.h> #define RX_RING_SIZE 256 @@ -335,13 +336,13 @@ lcore_tx(struct rte_ring *in_r) /* for traffic we receive, queue it up for transmit */ uint16_t i; - _mm_prefetch((void *)bufs[0], 0); - _mm_prefetch((void *)bufs[1], 0); - _mm_prefetch((void *)bufs[2], 0); + rte_prefetch_non_temporal((void *)bufs[0]); + rte_prefetch_non_temporal((void *)bufs[1]); + rte_prefetch_non_temporal((void *)bufs[2]); for (i = 0; i < nb_rx; i++) { struct output_buffer *outbuf; uint8_t outp; - _mm_prefetch((void *)bufs[i + 3], 0); + rte_prefetch_non_temporal((void *)bufs[i + 3]); /* * workers should update in_port to hold the * output port value -- 2.1.0