DPDK Memory Management Help

Alan Beadle ab.beadle at gmail.com
Tue Oct 1 14:25:46 CEST 2024


Hi everyone,

I'm working with DPDK and could use some advice about memory
management of the DPDK heap.

I need to prevent DPDK from freeing the rte_mbuf buffers once the
corresponding packets have been sent with rte_eth_tx_burst(). My
application has local readers as well, and so I want to keep that data
around for them to read via shared memory. I would prefer to rely on
explicit calls to free any of these buffers. I can find plenty of
sources about rte_eth_tx_burst() freeing messages once they are sent,
but cannot find a way to override this behavior, or any mention of an
alternate call to send without freeing.

This would let me avoid copying the data into a separate buffer just
for local readers and to let them read from the same buffers that DPDK
already requires., leading to a significant performance gain (less
memcpy). This seems like something that should be possible *without*
modifying DPDK, but I haven't figured out how yet. I know that I would
need to take care that the buffers are not freed prior to sending.

Thanks for any advice,
-Alan


More information about the users mailing list