net/ena: check missing Tx completions
authorMichal Krawczyk <mk@semihalf.com>
Tue, 19 Oct 2021 10:56:28 +0000 (12:56 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 19 Oct 2021 13:04:17 +0000 (15:04 +0200)
commitf93e20e5161a9bb7d117e64b926ac54739ad1fa5
treefba8f3c9cc34f94b2a2c2adabf30607a34793b84
parent08180833cb698bd737d760e4af77b796882ef328
net/ena: check missing Tx completions

In some cases Tx descriptors may be uncompleted by the HW and as a
result they will never be released.

This patch adds checking for the missing Tx completions to the ENA timer
service, so in order to use this feature, the application must call the
function rte_timer_manage().

Missing Tx completion reset threshold is determined dynamically, by
taking into consideration ring size and the default value.

Tx cleanup is associated with the Tx burst function. As DPDK
applications can call Tx burst function dynamically, time when last
cleanup was called must be traced to avoid false detection of the
missing Tx completion.

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Igor Chauskin <igorch@amazon.com>
Reviewed-by: Shai Brandes <shaibran@amazon.com>
doc/guides/rel_notes/release_21_11.rst
drivers/net/ena/ena_ethdev.c
drivers/net/ena/ena_ethdev.h