[dpdk-dev] rte_eth_tx_burst improperly freeing mbufs from KNI mbuf pool

Paras Jha dreadiscool at gmail.com
Wed Apr 10 15:10:33 CEST 2019


Hi all,

I've been chasing down a strange issue related to rte_kni_tx_burst.

My application calls rte_kni_rx_burst, which allocates from a discrete mbuf
pool using kni_allocate_mbufs. That traffic is immediately sent to
rte_eth_tx_burst which does not seem to be freeing mbufs even upon
succesful completion.

My application follows the standard model of freeing mbufs only if the
number of tx mbufs is less than the rx mbufs - however, after sending as
many mbufs as there are in the pool, I get KNI: Out of memory soon after
when calling rte_kni_rx_burst

My concern is that if I free all mbufs allocated by the KNI during
rte_kni_rx_burst the application seems to work as intended without memory
leaks, even though this goes against how the actual PMDs work. Is this a
bug, or intended behavior? The documented examples on the DPDK website seem
to only free mbufs if it fails to send, even with the KNI example.

B/R


More information about the dev mailing list