84ac1559c4
test-pmd txonly leaks mbuf from the pool. The function tx_mbuf_alloc() does not change the refcnt and the refcnt is 0 when it is first allocated. However, rte_pktmbuf_free_seg called by the driver's xmit code decrements reference count to -1. So mbuf never goes back to the pool. As a result, txonly can't send packets after it exhausts the mempool. The function tx_mbuf_alloc() was getting mbuf directly from mempool and so was bypassing mbuf API. The dedicated function is rte_pktmbuf_alloc() but it is much slower because it does unnecessary initializations in rte_pktmbuf_reset(). By using the internal API __rte_mbuf_raw_alloc(), refcnt is correctly handled without adding too much overload. Signed-off-by: Dongsu Han <dongsuh@cs.cmu.edu> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> |
||
---|---|---|
.. | ||
cmdline.c | ||
config.c | ||
csumonly.c | ||
ieee1588fwd.c | ||
iofwd.c | ||
macfwd.c | ||
Makefile | ||
parameters.c | ||
rxonly.c | ||
testpmd.c | ||
testpmd.h | ||
txonly.c |