Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

One buffer pool per NIC queue

Tags:

dpdk

AFAIK the DPDK code examples use a single rte_mempool for the whole application (or for all the queues of a given port).

Assuming all EAL threads interact only with their own RX/TX queue, is it recommended to have one mempool per lcore/queue to further reduce contention?

like image 606
user36568 Avatar asked Nov 23 '25 02:11

user36568


1 Answers

Memory pools use per-lcore caches, so they are quite effectively deal with the contentions.

Sure, adding more mempools still might give some performance advantages, but it also will increase memory footprint and hence the program might not fit into L3 anymore.

So the answer is: it depends, it has to be measured. I suggest instead to increase the per-lcore cache up to the number of Tx + RX descriptors. This should guarantee that there is no contention between the lcores without drastic changes in the source code.

Always benchmark your changes, that’s the main rule of the performance optimization ;)

like image 180
Andriy Berestovskyy Avatar answered Nov 24 '25 22:11

Andriy Berestovskyy



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!