Page MenuHomeFreeBSD

D57756.id180333.diff
No OneTemporary

D57756.id180333.diff

diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -1890,13 +1890,26 @@
stats->illerrc += IXGBE_READ_REG(hw, IXGBE_ILLERRC);
stats->errbc += IXGBE_READ_REG(hw, IXGBE_ERRBC);
stats->mspdc += IXGBE_READ_REG(hw, IXGBE_MSPDC);
- stats->mpc[0] += IXGBE_READ_REG(hw, IXGBE_MPC(0));
+ for (int i = 0; i < 8; i++) {
+ u32 mp = IXGBE_READ_REG(hw, IXGBE_MPC(i));
+ /* missed_rx tallies misses for the gprc workaround */
+ missed_rx += mp;
+ stats->mpc[i] += mp;
+ /* total for stats display */
+ total_missed_rx += stats->mpc[i];
+ }
for (int i = 0; i < 16; i++) {
stats->qprc[i] += IXGBE_READ_REG(hw, IXGBE_QPRC(i));
stats->qptc[i] += IXGBE_READ_REG(hw, IXGBE_QPTC(i));
stats->qprdc[i] += IXGBE_READ_REG(hw, IXGBE_QPRDC(i));
}
+
+ /* Per-queue no-descriptor drops are input drops too (82599+) */
+ if (hw->mac.type != ixgbe_mac_82598EB)
+ for (int i = 0; i < 16; i++)
+ total_missed_rx += stats->qprdc[i];
+
stats->mlfc += IXGBE_READ_REG(hw, IXGBE_MLFC);
stats->mrfc += IXGBE_READ_REG(hw, IXGBE_MRFC);
stats->rlec += IXGBE_READ_REG(hw, IXGBE_RLEC);
@@ -2004,7 +2017,6 @@
* Aggregate following types of errors as RX errors:
* - CRC error count,
* - illegal byte error count,
- * - missed packets count,
* - length error count,
* - undersized packets count,
* - fragmented packets count,
@@ -2012,8 +2024,8 @@
* - jabber count.
*/
IXGBE_SET_IERRORS(sc, stats->crcerrs + stats->illerrc +
- stats->mpc[0] + stats->rlec + stats->ruc + stats->rfc +
- stats->roc + stats->rjc);
+ stats->rlec + stats->ruc + stats->rfc + stats->roc +
+ stats->rjc);
} /* ixgbe_update_stats_counters */
/************************************************************************

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 1, 5:09 PM (3 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34260761
Default Alt Text
D57756.id180333.diff (1 KB)

Event Timeline