Page MenuHomeFreeBSD

D46355.1789560881.diff
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

D46355.1789560881.diff

diff --git a/sys/dev/ena/ena.c b/sys/dev/ena/ena.c
--- a/sys/dev/ena/ena.c
+++ b/sys/dev/ena/ena.c
@@ -3058,13 +3058,13 @@
check_missing_comp_in_tx_queue(struct ena_adapter *adapter,
struct ena_ring *tx_ring)
{
+ uint32_t missed_tx = 0, new_missed_tx = 0;
device_t pdev = adapter->pdev;
struct bintime curtime, time;
struct ena_tx_buffer *tx_buf;
int time_since_last_cleanup;
int missing_tx_comp_to;
sbintime_t time_offset;
- uint32_t missed_tx = 0;
int i, rc = 0;
getbinuptime(&curtime);
@@ -3107,13 +3107,15 @@
"%d msecs have passed since last cleanup. Missing Tx timeout value %d msecs.\n",
tx_ring->qid, i, time_since_last_cleanup,
missing_tx_comp_to);
+ /* Add new TX completions which are missed */
+ new_missed_tx++;
}
tx_buf->print_once = false;
missed_tx++;
}
}
-
+ /* Checking if this TX ring missing TX completions have passed the threshold */
if (unlikely(missed_tx > adapter->missing_tx_threshold)) {
ena_log(pdev, ERR,
"The number of lost tx completion is above the threshold "
@@ -3122,8 +3124,8 @@
ena_trigger_reset(adapter, ENA_REGS_RESET_MISS_TX_CMPL);
rc = EIO;
}
-
- counter_u64_add(tx_ring->tx_stats.missing_tx_comp, missed_tx);
+ /* Add the newly discovered missing TX completions */
+ counter_u64_add(tx_ring->tx_stats.missing_tx_comp, new_missed_tx);
return (rc);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Sep 16, 12:14 PM (22 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29693681
Default Alt Text
D46355.1789560881.diff (1 KB)

Event Timeline