[dpdk-users] How to use software prefetching for custom structures to increase throughput on the fast path
Van Haaren, Harry
harry.van.haaren at intel.com
Wed Sep 12 10:22:35 CEST 2018
> -----Original Message-----
> From: users [mailto:users-bounces at dpdk.org] On Behalf Of Arvind Narayanan
> Sent: Tuesday, September 11, 2018 7:39 PM
> To: stephen at networkplumber.org
> Cc: Wiles, Keith <keith.wiles at intel.com>; users at dpdk.org
> Subject: Re: [dpdk-users] How to use software prefetching for custom
> structures to increase throughput on the fast path
> So, essentially, what I am doing is -- core 0 gets a burst of my_packet(s)
> from its pre-allocated mempool, and then (bulk) enqueues it into a
> rte_ring. Core 1 then (bulk) dequeues from this ring and when it access the
> data pointed by the ring's element (i.e. my_packet->tag1)
You say "Bulk" here. Are you using "bulk" or "burst"?
Try using "burst" dequeue which will return the max number of packets available,
even if it is less than the size of the array you provided.
Bulk will fail to dequeue anything unless your threshold of MAX was reached,
which means that likely you'll stall the consumer core waiting until MAX, and
then playing catchup again.
More information about the users