From my application calling rte_eth_rx_burst
checking sometimes same mbuff coming twice . Checked code buffer not freeing . With out mbuff free what could be the scenario that same mbuff pointer received twice .
Run your app with:
--log-level=8
What you’ll see:
Rebuild DPDK with:
CONFIG_RTE_LIBRTE_MBUF_DEBUG=y
This will:
CONFIG_RTE_LIBRTE_MEMPOOL_DEBUG=y
Helps detect:
You can enable memory overwrite checking:
CONFIG_RTE_MALLOC_DEBUG=y
and
--mp-alloc=debug
This helps detect:
Run
testpmd -- -i
Then:
set fwd rxonly
start
If duplication disappears:
If still happens:
thanks @yipingwang for your quick reply and suggestions. from code i am not to figure out more . Any DPDK debug flag can help ?
Without an explicit mbuf free in your code, the most likely scenarios are that the mbuf is still being effectively returned/reused through another path in the application or shared unsafely across threads/cores, or that a special driver/path-specific buffer handling issue is corrupting lifecycle state.
RTE_MBUF_REFCNT_ATOMIC was enabled for multicore access, and the customer said yes, but the issue was still treated as application-level ownership/lifetime handling.,next not cleared), causing sanity-check failures on later allocation. That is not the same symptom as your report, but it does show that special buffer handling paths can lead to later reuse/corruption symptoms.sym->m_dst is NULL , then m_src and m_dst use the same mbuf. That can make packet contents appear rewritten “in place” under load, even though the pointer identity did not change.Thanks @yipingwang for Quick reply . I will try and update you .
One observation every time multiple mbuf ( same address coming ) getting below prints in screen
fslmc: dpaa2_get_qbman_swp(): New Portal 0x17ffd61c0 (5) affined thread - 1953
fslmc: dpaa2_configure_stashing(): Portal= 5 CPU= 10 SDEST= 5
fslmc: DPAA Portal=0x17ffd61c0 (5) is affined to thread 1953