mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
RDMA/irdma: Add GEN3 HW statistics support
Plug into the unified HW statistics framework by adding a hardware statistics map array for GEN3, defining the HW-specific width and location for each counter in the statistics buffer. Signed-off-by: Krzysztof Czurylo <krzysztof.czurylo@intel.com> Signed-off-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com> Link: https://patch.msgid.link/20250827152545.2056-7-tatyana.e.nikolova@intel.com Tested-by: Jacob Moroni <jmoroni@google.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
b800e82feb
commit
da278cb29c
|
|
@ -1968,7 +1968,8 @@ int irdma_vsi_stats_init(struct irdma_sc_vsi *vsi,
|
|||
(void *)((uintptr_t)stats_buff_mem->va +
|
||||
IRDMA_GATHER_STATS_BUF_SIZE);
|
||||
|
||||
irdma_hw_stats_start_timer(vsi);
|
||||
if (vsi->dev->hw_attrs.uk_attrs.hw_rev < IRDMA_GEN_3)
|
||||
irdma_hw_stats_start_timer(vsi);
|
||||
|
||||
/* when stat allocation is not required default to fcn_id. */
|
||||
vsi->stats_idx = info->fcn_id;
|
||||
|
|
@ -2013,7 +2014,9 @@ void irdma_vsi_stats_free(struct irdma_sc_vsi *vsi)
|
|||
|
||||
if (!vsi->pestat)
|
||||
return;
|
||||
irdma_hw_stats_stop_timer(vsi);
|
||||
|
||||
if (dev->hw_attrs.uk_attrs.hw_rev < IRDMA_GEN_3)
|
||||
irdma_hw_stats_stop_timer(vsi);
|
||||
dma_free_coherent(vsi->pestat->hw->device,
|
||||
vsi->pestat->gather_info.stats_buff_mem.size,
|
||||
vsi->pestat->gather_info.stats_buff_mem.va,
|
||||
|
|
@ -5929,14 +5932,26 @@ void irdma_cfg_aeq(struct irdma_sc_dev *dev, u32 idx, bool enable)
|
|||
*/
|
||||
void sc_vsi_update_stats(struct irdma_sc_vsi *vsi)
|
||||
{
|
||||
struct irdma_gather_stats *gather_stats;
|
||||
struct irdma_gather_stats *last_gather_stats;
|
||||
struct irdma_dev_hw_stats *hw_stats = &vsi->pestat->hw_stats;
|
||||
struct irdma_gather_stats *gather_stats =
|
||||
vsi->pestat->gather_info.gather_stats_va;
|
||||
struct irdma_gather_stats *last_gather_stats =
|
||||
vsi->pestat->gather_info.last_gather_stats_va;
|
||||
const struct irdma_hw_stat_map *map = vsi->dev->hw_stats_map;
|
||||
u16 max_stat_idx = vsi->dev->hw_attrs.max_stat_idx;
|
||||
u16 i;
|
||||
|
||||
gather_stats = vsi->pestat->gather_info.gather_stats_va;
|
||||
last_gather_stats = vsi->pestat->gather_info.last_gather_stats_va;
|
||||
irdma_update_stats(&vsi->pestat->hw_stats, gather_stats,
|
||||
last_gather_stats, vsi->dev->hw_stats_map,
|
||||
vsi->dev->hw_attrs.max_stat_idx);
|
||||
if (vsi->dev->hw_attrs.uk_attrs.hw_rev >= IRDMA_GEN_3) {
|
||||
for (i = 0; i < max_stat_idx; i++) {
|
||||
u16 idx = map[i].byteoff / sizeof(u64);
|
||||
|
||||
hw_stats->stats_val[i] = gather_stats->val[idx];
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
irdma_update_stats(hw_stats, gather_stats, last_gather_stats,
|
||||
map, max_stat_idx);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -415,7 +415,7 @@ enum irdma_cqp_op_type {
|
|||
#define IRDMA_CQPSQ_STATS_USE_INST BIT_ULL(61)
|
||||
#define IRDMA_CQPSQ_STATS_OP GENMASK_ULL(37, 32)
|
||||
#define IRDMA_CQPSQ_STATS_INST_INDEX GENMASK_ULL(6, 0)
|
||||
#define IRDMA_CQPSQ_STATS_HMC_FCN_INDEX GENMASK_ULL(5, 0)
|
||||
#define IRDMA_CQPSQ_STATS_HMC_FCN_INDEX GENMASK_ULL(15, 0)
|
||||
#define IRDMA_CQPSQ_WS_WQEVALID BIT_ULL(63)
|
||||
#define IRDMA_CQPSQ_WS_NODEOP GENMASK_ULL(55, 52)
|
||||
#define IRDMA_SD_MAX GENMASK_ULL(15, 0)
|
||||
|
|
|
|||
|
|
@ -48,9 +48,70 @@ static const struct irdma_irq_ops ig3rdma_irq_ops = {
|
|||
.irdma_en_irq = ig3rdma_ena_irq,
|
||||
};
|
||||
|
||||
static const struct irdma_hw_stat_map ig3rdma_hw_stat_map[] = {
|
||||
[IRDMA_HW_STAT_INDEX_RXVLANERR] = { 0, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXOCTS] = { 8, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXPKTS] = { 16, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXDISCARD] = { 24, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXTRUNC] = { 32, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXFRAGS] = { 40, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXMCOCTS] = { 48, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS] = { 56, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXOCTS] = { 64, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXPKTS] = { 72, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXDISCARD] = { 80, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXTRUNC] = { 88, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXFRAGS] = { 96, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXMCOCTS] = { 104, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS] = { 112, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXOCTS] = { 120, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXPKTS] = { 128, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXFRAGS] = { 136, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXMCOCTS] = { 144, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS] = { 152, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXOCTS] = { 160, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXPKTS] = { 168, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXFRAGS] = { 176, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXMCOCTS] = { 184, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS] = { 192, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE] = { 200, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE] = { 208, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_TCPRTXSEG] = { 216, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXOPTERR] = { 224, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR] = { 232, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_TCPTXSEG] = { 240, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXSEGS] = { 248, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_UDPRXPKTS] = { 256, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_UDPTXPKTS] = { 264, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXWRS] = { 272, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXRDS] = { 280, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXSNDS] = { 288, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXWRS] = { 296, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXRDS] = { 304, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXSNDS] = { 312, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMAVBND] = { 320, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMAVINV] = { 328, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS] = { 336, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED] = { 344, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED] = { 352, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_TXNPCNPSENT] = { 360, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RNR_SENT] = { 368, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RNR_RCVD] = { 376, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMAORDLMTCNT] = { 384, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMAIRDLMTCNT] = { 392, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXATS] = { 408, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXATS] = { 416, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_NAKSEQERR] = { 424, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_NAKSEQERR_IMPLIED] = { 432, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RTO] = { 440, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_RXOOOPKTS] = { 448, 0, 0 },
|
||||
[IRDMA_HW_STAT_INDEX_ICRCERR] = { 456, 0, 0 },
|
||||
};
|
||||
|
||||
void ig3rdma_init_hw(struct irdma_sc_dev *dev)
|
||||
{
|
||||
dev->irq_ops = &ig3rdma_irq_ops;
|
||||
dev->hw_stats_map = ig3rdma_hw_stat_map;
|
||||
|
||||
dev->hw_attrs.uk_attrs.hw_rev = IRDMA_GEN_3;
|
||||
dev->hw_attrs.uk_attrs.max_hw_wq_frags = IG3RDMA_MAX_WQ_FRAGMENT_COUNT;
|
||||
|
|
@ -70,6 +131,8 @@ void ig3rdma_init_hw(struct irdma_sc_dev *dev)
|
|||
dev->hw_attrs.page_size_cap = SZ_4K | SZ_2M | SZ_1G;
|
||||
dev->hw_attrs.max_hw_ird = IG3RDMA_MAX_IRD_SIZE;
|
||||
dev->hw_attrs.max_hw_ord = IG3RDMA_MAX_ORD_SIZE;
|
||||
dev->hw_attrs.max_stat_inst = IG3RDMA_MAX_STATS_COUNT;
|
||||
dev->hw_attrs.max_stat_idx = IRDMA_HW_STAT_INDEX_MAX_GEN_3;
|
||||
dev->hw_attrs.uk_attrs.min_hw_wq_size = IG3RDMA_MIN_WQ_SIZE;
|
||||
dev->hw_attrs.uk_attrs.max_hw_srq_quanta = IRDMA_SRQ_MAX_QUANTA;
|
||||
dev->hw_attrs.uk_attrs.max_hw_inline = IG3RDMA_MAX_INLINE_DATA_SIZE;
|
||||
|
|
|
|||
|
|
@ -156,6 +156,21 @@ enum irdma_hw_stats_index {
|
|||
IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED = 44,
|
||||
IRDMA_HW_STAT_INDEX_TXNPCNPSENT = 45,
|
||||
IRDMA_HW_STAT_INDEX_MAX_GEN_2 = 46,
|
||||
|
||||
/* gen3 */
|
||||
IRDMA_HW_STAT_INDEX_RNR_SENT = 46,
|
||||
IRDMA_HW_STAT_INDEX_RNR_RCVD = 47,
|
||||
IRDMA_HW_STAT_INDEX_RDMAORDLMTCNT = 48,
|
||||
IRDMA_HW_STAT_INDEX_RDMAIRDLMTCNT = 49,
|
||||
IRDMA_HW_STAT_INDEX_RDMARXATS = 50,
|
||||
IRDMA_HW_STAT_INDEX_RDMATXATS = 51,
|
||||
IRDMA_HW_STAT_INDEX_NAKSEQERR = 52,
|
||||
IRDMA_HW_STAT_INDEX_NAKSEQERR_IMPLIED = 53,
|
||||
IRDMA_HW_STAT_INDEX_RTO = 54,
|
||||
IRDMA_HW_STAT_INDEX_RXOOOPKTS = 55,
|
||||
IRDMA_HW_STAT_INDEX_ICRCERR = 56,
|
||||
|
||||
IRDMA_HW_STAT_INDEX_MAX_GEN_3 = 57,
|
||||
};
|
||||
|
||||
enum irdma_feature_type {
|
||||
|
|
@ -569,7 +584,7 @@ struct irdma_sc_qp {
|
|||
struct irdma_stats_inst_info {
|
||||
bool use_hmc_fcn_index;
|
||||
u8 hmc_fn_id;
|
||||
u8 stats_idx;
|
||||
u16 stats_idx;
|
||||
};
|
||||
|
||||
struct irdma_up_info {
|
||||
|
|
@ -1027,7 +1042,7 @@ struct irdma_qp_host_ctx_info {
|
|||
u32 send_cq_num;
|
||||
u32 rcv_cq_num;
|
||||
u32 rem_endpoint_idx;
|
||||
u8 stats_idx;
|
||||
u16 stats_idx;
|
||||
bool srq_valid:1;
|
||||
bool tcp_info_valid:1;
|
||||
bool iwarp_info_valid:1;
|
||||
|
|
|
|||
|
|
@ -3923,6 +3923,73 @@ static int irdma_req_notify_cq(struct ib_cq *ibcq,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static const struct rdma_stat_desc irdma_hw_stat_descs[] = {
|
||||
/* gen1 - 32-bit */
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXDISCARD].name = "ip4InDiscards",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXTRUNC].name = "ip4InTruncatedPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE].name = "ip4OutNoRoutes",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXDISCARD].name = "ip6InDiscards",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXTRUNC].name = "ip6InTruncatedPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE].name = "ip6OutNoRoutes",
|
||||
[IRDMA_HW_STAT_INDEX_RXVLANERR].name = "rxVlanErrors",
|
||||
/* gen1 - 64-bit */
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXOCTS].name = "ip4InOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXPKTS].name = "ip4InPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXFRAGS].name = "ip4InReasmRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS].name = "ip4InMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXOCTS].name = "ip4OutOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXPKTS].name = "ip4OutPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXFRAGS].name = "ip4OutSegRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS].name = "ip4OutMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXOCTS].name = "ip6InOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXPKTS].name = "ip6InPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXFRAGS].name = "ip6InReasmRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS].name = "ip6InMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXOCTS].name = "ip6OutOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXPKTS].name = "ip6OutPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXFRAGS].name = "ip6OutSegRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS].name = "ip6OutMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXRDS].name = "InRdmaReads",
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXSNDS].name = "InRdmaSends",
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXWRS].name = "InRdmaWrites",
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXRDS].name = "OutRdmaReads",
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXSNDS].name = "OutRdmaSends",
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXWRS].name = "OutRdmaWrites",
|
||||
[IRDMA_HW_STAT_INDEX_RDMAVBND].name = "RdmaBnd",
|
||||
[IRDMA_HW_STAT_INDEX_RDMAVINV].name = "RdmaInv",
|
||||
|
||||
/* gen2 - 32-bit */
|
||||
[IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED].name = "cnpHandled",
|
||||
[IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED].name = "cnpIgnored",
|
||||
[IRDMA_HW_STAT_INDEX_TXNPCNPSENT].name = "cnpSent",
|
||||
/* gen2 - 64-bit */
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXMCOCTS].name = "ip4InMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXMCOCTS].name = "ip4OutMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXMCOCTS].name = "ip6InMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXMCOCTS].name = "ip6OutMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_UDPRXPKTS].name = "RxUDP",
|
||||
[IRDMA_HW_STAT_INDEX_UDPTXPKTS].name = "TxUDP",
|
||||
[IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS].name = "RxECNMrkd",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRTXSEG].name = "RetransSegs",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXOPTERR].name = "InOptErrors",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR].name = "InProtoErrors",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXSEGS].name = "InSegs",
|
||||
[IRDMA_HW_STAT_INDEX_TCPTXSEG].name = "OutSegs",
|
||||
|
||||
/* gen3 */
|
||||
[IRDMA_HW_STAT_INDEX_RNR_SENT].name = "RNR sent",
|
||||
[IRDMA_HW_STAT_INDEX_RNR_RCVD].name = "RNR received",
|
||||
[IRDMA_HW_STAT_INDEX_RDMAORDLMTCNT].name = "ord limit count",
|
||||
[IRDMA_HW_STAT_INDEX_RDMAIRDLMTCNT].name = "ird limit count",
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXATS].name = "Rx atomics",
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXATS].name = "Tx atomics",
|
||||
[IRDMA_HW_STAT_INDEX_NAKSEQERR].name = "Nak Sequence Error",
|
||||
[IRDMA_HW_STAT_INDEX_NAKSEQERR_IMPLIED].name = "Nak Sequence Error Implied",
|
||||
[IRDMA_HW_STAT_INDEX_RTO].name = "RTO",
|
||||
[IRDMA_HW_STAT_INDEX_RXOOOPKTS].name = "Rcvd Out of order packets",
|
||||
[IRDMA_HW_STAT_INDEX_ICRCERR].name = "CRC errors",
|
||||
};
|
||||
|
||||
static int irdma_roce_port_immutable(struct ib_device *ibdev, u32 port_num,
|
||||
struct ib_port_immutable *immutable)
|
||||
{
|
||||
|
|
@ -3956,61 +4023,6 @@ static int irdma_iw_port_immutable(struct ib_device *ibdev, u32 port_num,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct rdma_stat_desc irdma_hw_stat_names[] = {
|
||||
/* gen1 - 32-bit */
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXDISCARD].name = "ip4InDiscards",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXTRUNC].name = "ip4InTruncatedPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE].name = "ip4OutNoRoutes",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXDISCARD].name = "ip6InDiscards",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXTRUNC].name = "ip6InTruncatedPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE].name = "ip6OutNoRoutes",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRTXSEG].name = "tcpRetransSegs",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXOPTERR].name = "tcpInOptErrors",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR].name = "tcpInProtoErrors",
|
||||
[IRDMA_HW_STAT_INDEX_RXVLANERR].name = "rxVlanErrors",
|
||||
/* gen1 - 64-bit */
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXOCTS].name = "ip4InOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXPKTS].name = "ip4InPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXFRAGS].name = "ip4InReasmRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS].name = "ip4InMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXOCTS].name = "ip4OutOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXPKTS].name = "ip4OutPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXFRAGS].name = "ip4OutSegRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS].name = "ip4OutMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXOCTS].name = "ip6InOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXPKTS].name = "ip6InPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXFRAGS].name = "ip6InReasmRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS].name = "ip6InMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXOCTS].name = "ip6OutOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXPKTS].name = "ip6OutPkts",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXFRAGS].name = "ip6OutSegRqd",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS].name = "ip6OutMcastPkts",
|
||||
[IRDMA_HW_STAT_INDEX_TCPRXSEGS].name = "tcpInSegs",
|
||||
[IRDMA_HW_STAT_INDEX_TCPTXSEG].name = "tcpOutSegs",
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXRDS].name = "iwInRdmaReads",
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXSNDS].name = "iwInRdmaSends",
|
||||
[IRDMA_HW_STAT_INDEX_RDMARXWRS].name = "iwInRdmaWrites",
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXRDS].name = "iwOutRdmaReads",
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXSNDS].name = "iwOutRdmaSends",
|
||||
[IRDMA_HW_STAT_INDEX_RDMATXWRS].name = "iwOutRdmaWrites",
|
||||
[IRDMA_HW_STAT_INDEX_RDMAVBND].name = "iwRdmaBnd",
|
||||
[IRDMA_HW_STAT_INDEX_RDMAVINV].name = "iwRdmaInv",
|
||||
|
||||
/* gen2 - 32-bit */
|
||||
[IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED].name = "cnpHandled",
|
||||
[IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED].name = "cnpIgnored",
|
||||
[IRDMA_HW_STAT_INDEX_TXNPCNPSENT].name = "cnpSent",
|
||||
/* gen2 - 64-bit */
|
||||
[IRDMA_HW_STAT_INDEX_IP4RXMCOCTS].name = "ip4InMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP4TXMCOCTS].name = "ip4OutMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6RXMCOCTS].name = "ip6InMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_IP6TXMCOCTS].name = "ip6OutMcastOctets",
|
||||
[IRDMA_HW_STAT_INDEX_UDPRXPKTS].name = "RxUDP",
|
||||
[IRDMA_HW_STAT_INDEX_UDPTXPKTS].name = "TxUDP",
|
||||
[IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS].name = "RxECNMrkd",
|
||||
|
||||
};
|
||||
|
||||
static void irdma_get_dev_fw_str(struct ib_device *dev, char *str)
|
||||
{
|
||||
struct irdma_device *iwdev = to_iwdev(dev);
|
||||
|
|
@ -4034,7 +4046,7 @@ static struct rdma_hw_stats *irdma_alloc_hw_port_stats(struct ib_device *ibdev,
|
|||
int num_counters = dev->hw_attrs.max_stat_idx;
|
||||
unsigned long lifespan = RDMA_HW_STATS_DEFAULT_LIFESPAN;
|
||||
|
||||
return rdma_alloc_hw_stats_struct(irdma_hw_stat_names, num_counters,
|
||||
return rdma_alloc_hw_stats_struct(irdma_hw_stat_descs, num_counters,
|
||||
lifespan);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user