Skip to content

Fix: drain chain mbufs before queue release on TX restart#1439

Closed
Sakoram wants to merge 1 commit intomainfrom
Fix-mempools-reinit
Closed

Fix: drain chain mbufs before queue release on TX restart#1439
Sakoram wants to merge 1 commit intomainfrom
Fix-mempools-reinit

Conversation

@Sakoram
Copy link
Collaborator

@Sakoram Sakoram commented Feb 16, 2026

After TX video session restart, chain mbufs holding extbuf references to frame_info->sh_info could remain in the NIC TX descriptor ring. When frames were freed during tv_uinit_sw, subsequent descriptor completion triggered rte_pktmbuf_free_extbuf on freed sh_info memory, causing payload corruption visible only with chain mbufs (not tx_no_chain).

Restructure tv_uinit_hw into 4 phases: drain software rings, flush all queues with pad packets, verify chain mempool is drained via rte_eth_tx_done_cleanup while queues are still alive, then release queues. Apply the same flush+drain pattern in
st20_tx_queue_fatal_error before releasing the old queue and resetting sh_info refcnts.

After TX video session restart, chain mbufs holding extbuf references
to frame_info->sh_info could remain in the NIC TX descriptor ring.
When frames were freed during tv_uinit_sw, subsequent descriptor
completion triggered rte_pktmbuf_free_extbuf on freed sh_info memory,
causing payload corruption visible only with chain mbufs (not
tx_no_chain).

Restructure tv_uinit_hw into 4 phases: drain software rings, flush
all queues with pad packets, verify chain mempool is drained via
rte_eth_tx_done_cleanup while queues are still alive, then release
queues. Apply the same flush+drain pattern in
st20_tx_queue_fatal_error before releasing the old queue and resetting
sh_info refcnts.

Signed-off-by: Kasiewicz, Marek <marek.kasiewicz@intel.com>
@Sakoram
Copy link
Collaborator Author

Sakoram commented Feb 18, 2026

did not help on the issue.

@Sakoram Sakoram closed this Feb 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments