[dpdk-dev] Performance of rte_ring APIs

Gopakumar Choorakkot Edakkunni gopakumar.c.e at gmail.com
Fri Aug 7 19:07:07 CEST 2015


Hi All,

I have an extremely simple test - I have just one single DPDK EAL
thread which pulls packets from one 10G port and just puts the packet
exactly as is (no changes) on another 10G port - I get 9.5million pps,
so far so good. So its like this

dpdk_rx
dpdk_tx

9.5 Millionpps

Now I do the below and the performance comes down to like 4 Million
pps, less than half !

dpdk_rx
rte_ring_mc_dequeue_bulk(my_ring1, my_array, nb_rx)
dpdk_tx
rte_ring_mp_enqueue_bulk(my_ring1, my_array, nb_rx)

Note that I do nothing with the things I dequeue from the ring, I just
enqueue it back. So is there any gotchas in using these rings ? I am
sure I am missing something, it cant drop from 9.5Mpps to 4Mpps just
because of a dequeue/enqueue ?

Rgds,
Gopa.


More information about the dev mailing list