bnxt_en: Add software "missed_irqs" counter.
To keep track of the number of times the workaround code for 57500 A0 has been triggered. This is a per NQ counter. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
ffd7762170
Коммит
83eb5c5cff
|
@ -8909,6 +8909,7 @@ static void bnxt_chk_missed_irq(struct bnxt *bp)
|
||||||
bnxt_dbg_hwrm_ring_info_get(bp,
|
bnxt_dbg_hwrm_ring_info_get(bp,
|
||||||
DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL,
|
DBG_RING_INFO_GET_REQ_RING_TYPE_L2_CMPL,
|
||||||
fw_ring_id, &val[0], &val[1]);
|
fw_ring_id, &val[0], &val[1]);
|
||||||
|
cpr->missed_irqs++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -818,6 +818,7 @@ struct bnxt_cp_ring_info {
|
||||||
dma_addr_t hw_stats_map;
|
dma_addr_t hw_stats_map;
|
||||||
u32 hw_stats_ctx_id;
|
u32 hw_stats_ctx_id;
|
||||||
u64 rx_l4_csum_errors;
|
u64 rx_l4_csum_errors;
|
||||||
|
u64 missed_irqs;
|
||||||
|
|
||||||
struct bnxt_ring_struct cp_ring_struct;
|
struct bnxt_ring_struct cp_ring_struct;
|
||||||
|
|
||||||
|
|
|
@ -137,7 +137,7 @@ reset_coalesce:
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BNXT_NUM_STATS 21
|
#define BNXT_NUM_STATS 22
|
||||||
|
|
||||||
#define BNXT_RX_STATS_ENTRY(counter) \
|
#define BNXT_RX_STATS_ENTRY(counter) \
|
||||||
{ BNXT_RX_STATS_OFFSET(counter), __stringify(counter) }
|
{ BNXT_RX_STATS_OFFSET(counter), __stringify(counter) }
|
||||||
|
@ -384,6 +384,7 @@ static void bnxt_get_ethtool_stats(struct net_device *dev,
|
||||||
for (k = 0; k < stat_fields; j++, k++)
|
for (k = 0; k < stat_fields; j++, k++)
|
||||||
buf[j] = le64_to_cpu(hw_stats[k]);
|
buf[j] = le64_to_cpu(hw_stats[k]);
|
||||||
buf[j++] = cpr->rx_l4_csum_errors;
|
buf[j++] = cpr->rx_l4_csum_errors;
|
||||||
|
buf[j++] = cpr->missed_irqs;
|
||||||
|
|
||||||
bnxt_sw_func_stats[RX_TOTAL_DISCARDS].counter +=
|
bnxt_sw_func_stats[RX_TOTAL_DISCARDS].counter +=
|
||||||
le64_to_cpu(cpr->hw_stats->rx_discard_pkts);
|
le64_to_cpu(cpr->hw_stats->rx_discard_pkts);
|
||||||
|
@ -468,6 +469,8 @@ static void bnxt_get_strings(struct net_device *dev, u32 stringset, u8 *buf)
|
||||||
buf += ETH_GSTRING_LEN;
|
buf += ETH_GSTRING_LEN;
|
||||||
sprintf(buf, "[%d]: rx_l4_csum_errors", i);
|
sprintf(buf, "[%d]: rx_l4_csum_errors", i);
|
||||||
buf += ETH_GSTRING_LEN;
|
buf += ETH_GSTRING_LEN;
|
||||||
|
sprintf(buf, "[%d]: missed_irqs", i);
|
||||||
|
buf += ETH_GSTRING_LEN;
|
||||||
}
|
}
|
||||||
for (i = 0; i < BNXT_NUM_SW_FUNC_STATS; i++) {
|
for (i = 0; i < BNXT_NUM_SW_FUNC_STATS; i++) {
|
||||||
strcpy(buf, bnxt_sw_func_stats[i].string);
|
strcpy(buf, bnxt_sw_func_stats[i].string);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче