} __rte_cache_aligned;
#define BURST_SIZE 16
+#define MAX_PROD_ENQ_BURST_SIZE 128
#define PERF_WORKER_INIT\
struct worker_data *w = arg;\
{
bufs[count++] = ev->event_ptr;
- /* wmb here ensures event_prt is stored before
- * updating the number of processed packets
- * for worker lcores
+ /* release fence here ensures event_prt is
+ * stored before updating the number of
+ * processed packets for worker lcores
*/
- rte_smp_wmb();
+ rte_atomic_thread_fence(__ATOMIC_RELEASE);
w->processed_pkts++;
if (unlikely(count == buf_sz)) {
bufs[count++] = ev->event_ptr;
- /* wmb here ensures event_prt is stored before
- * updating the number of processed packets
- * for worker lcores
+ /* release fence here ensures event_prt is
+ * stored before updating the number of
+ * processed packets for worker lcores
*/
- rte_smp_wmb();
+ rte_atomic_thread_fence(__ATOMIC_RELEASE);
w->processed_pkts++;
if (unlikely(count == buf_sz)) {