2021-06-06 01:11:31

by Joe Perches

[permalink] [raw]
Subject: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?

There are some odd mismatches in field and access index.
These may be simple cut/paste typos.

Are these intentional?

ip4txfrag is set to the value from IP4RXFRAGS

915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1753) gather_stats->ip4txfrag =
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1754) rd64(dev->hw,
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1755) dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXFRAGS]
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1756) + stats_inst_offset_64);

ip4txfrag is set again a few lines later, so the case above is probably
a defect.

915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1769) gather_stats->ip4txfrag =
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1770) rd64(dev->hw,
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1771) dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXFRAGS]
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1772) + stats_inst_offset_64);

And here ip6txfrag is set to the value of IP6RXFRAGS

915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1785) gather_stats->ip6txfrags =
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1786) rd64(dev->hw,
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1787) dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXFRAGS]
915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1788) + stats_inst_offset_64);



2021-06-07 14:56:11

by Shiraz Saleem

[permalink] [raw]
Subject: RE: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?

> Subject: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
>
> There are some odd mismatches in field and access index.
> These may be simple cut/paste typos.
>
> Are these intentional?

No. Accidental. Likely cut/copy mistake. I will send a fix. Thanks Joe!

Shiraz

>
> ip4txfrag is set to the value from IP4RXFRAGS
>
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1753) gather_stats-
> >ip4txfrag =
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1754) rd64(dev-
> >hw,
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1755) dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXFRAGS]
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1756) +
> stats_inst_offset_64);
>
> ip4txfrag is set again a few lines later, so the case above is probably a defect.
>
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1769) gather_stats-
> >ip4txfrag =
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1770) rd64(dev-
> >hw,
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1771) dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXFRAGS]
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1772) +
> stats_inst_offset_64);
>
> And here ip6txfrag is set to the value of IP6RXFRAGS
>
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1785) gather_stats-
> >ip6txfrags =
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1786) rd64(dev-
> >hw,
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1787) dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXFRAGS]
> 915cc7ac0f8e2a (Mustafa Ismail 2021-06-02 15:51:34 -0500 1788) +
> stats_inst_offset_64);
>

2021-06-07 15:09:40

by Joe Perches

[permalink] [raw]
Subject: Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?

On Mon, 2021-06-07 at 14:54 +0000, Saleem, Shiraz wrote:
> > Subject: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
> >
> > There are some odd mismatches in field and access index.
> > These may be simple cut/paste typos.
> >
> > Are these intentional?
>
> No. Accidental. Likely cut/copy mistake. I will send a fix. Thanks
> Joe!

Reason is I was refactoring what I thought was rather templated and
overly verbose code.

Here's a possible patch (with probable corrections to these index typos):
---
drivers/infiniband/hw/irdma/type.h | 104 ++++++++++---------
drivers/infiniband/hw/irdma/utils.c | 196 +++++++++---------------------------
drivers/infiniband/hw/irdma/verbs.c | 125 +++++++++--------------
3 files changed, 147 insertions(+), 278 deletions(-)

diff --git a/drivers/infiniband/hw/irdma/type.h b/drivers/infiniband/hw/irdma/type.h
index 7387b83e826d2..4050e5b19c6e1 100644
--- a/drivers/infiniband/hw/irdma/type.h
+++ b/drivers/infiniband/hw/irdma/type.h
@@ -101,60 +101,64 @@ enum irdma_qp_event_type {
IRDMA_QP_EVENT_ACCESS_ERR,
};

+#define IRDMA_STAT(index) IRDMA_HW_STAT_INDEX_ ## index
+#define IRDMA_STAT_32(index) (IRDMA_HW_STAT_INDEX_ ## index)
+#define IRDMA_STAT_64(index) (IRDMA_HW_STAT_INDEX_MAX_32 + IRDMA_STAT_32(index))
+
enum irdma_hw_stats_index_32b {
- IRDMA_HW_STAT_INDEX_IP4RXDISCARD = 0,
- IRDMA_HW_STAT_INDEX_IP4RXTRUNC = 1,
- IRDMA_HW_STAT_INDEX_IP4TXNOROUTE = 2,
- IRDMA_HW_STAT_INDEX_IP6RXDISCARD = 3,
- IRDMA_HW_STAT_INDEX_IP6RXTRUNC = 4,
- IRDMA_HW_STAT_INDEX_IP6TXNOROUTE = 5,
- IRDMA_HW_STAT_INDEX_TCPRTXSEG = 6,
- IRDMA_HW_STAT_INDEX_TCPRXOPTERR = 7,
- IRDMA_HW_STAT_INDEX_TCPRXPROTOERR = 8,
- IRDMA_HW_STAT_INDEX_MAX_32_GEN_1 = 9, /* Must be same value as next entry */
- IRDMA_HW_STAT_INDEX_RXVLANERR = 9,
- IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED = 10,
- IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED = 11,
- IRDMA_HW_STAT_INDEX_TXNPCNPSENT = 12,
- IRDMA_HW_STAT_INDEX_MAX_32, /* Must be last entry */
+ IRDMA_STAT(IP4RXDISCARD) = 0,
+ IRDMA_STAT(IP4RXTRUNC) = 1,
+ IRDMA_STAT(IP4TXNOROUTE) = 2,
+ IRDMA_STAT(IP6RXDISCARD) = 3,
+ IRDMA_STAT(IP6RXTRUNC) = 4,
+ IRDMA_STAT(IP6TXNOROUTE) = 5,
+ IRDMA_STAT(TCPRTXSEG) = 6,
+ IRDMA_STAT(TCPRXOPTERR) = 7,
+ IRDMA_STAT(TCPRXPROTOERR) = 8,
+ IRDMA_STAT(MAX_32_GEN_1) = 9, /* Must be same value as next entry */
+ IRDMA_STAT(RXVLANERR) = 9,
+ IRDMA_STAT(RXRPCNPHANDLED) = 10,
+ IRDMA_STAT(RXRPCNPIGNORED) = 11,
+ IRDMA_STAT(TXNPCNPSENT) = 12,
+ IRDMA_STAT(MAX_32), /* Must be last entry */
};

enum irdma_hw_stats_index_64b {
- IRDMA_HW_STAT_INDEX_IP4RXOCTS = 0,
- IRDMA_HW_STAT_INDEX_IP4RXPKTS = 1,
- IRDMA_HW_STAT_INDEX_IP4RXFRAGS = 2,
- IRDMA_HW_STAT_INDEX_IP4RXMCPKTS = 3,
- IRDMA_HW_STAT_INDEX_IP4TXOCTS = 4,
- IRDMA_HW_STAT_INDEX_IP4TXPKTS = 5,
- IRDMA_HW_STAT_INDEX_IP4TXFRAGS = 6,
- IRDMA_HW_STAT_INDEX_IP4TXMCPKTS = 7,
- IRDMA_HW_STAT_INDEX_IP6RXOCTS = 8,
- IRDMA_HW_STAT_INDEX_IP6RXPKTS = 9,
- IRDMA_HW_STAT_INDEX_IP6RXFRAGS = 10,
- IRDMA_HW_STAT_INDEX_IP6RXMCPKTS = 11,
- IRDMA_HW_STAT_INDEX_IP6TXOCTS = 12,
- IRDMA_HW_STAT_INDEX_IP6TXPKTS = 13,
- IRDMA_HW_STAT_INDEX_IP6TXFRAGS = 14,
- IRDMA_HW_STAT_INDEX_IP6TXMCPKTS = 15,
- IRDMA_HW_STAT_INDEX_TCPRXSEGS = 16,
- IRDMA_HW_STAT_INDEX_TCPTXSEG = 17,
- IRDMA_HW_STAT_INDEX_RDMARXRDS = 18,
- IRDMA_HW_STAT_INDEX_RDMARXSNDS = 19,
- IRDMA_HW_STAT_INDEX_RDMARXWRS = 20,
- IRDMA_HW_STAT_INDEX_RDMATXRDS = 21,
- IRDMA_HW_STAT_INDEX_RDMATXSNDS = 22,
- IRDMA_HW_STAT_INDEX_RDMATXWRS = 23,
- IRDMA_HW_STAT_INDEX_RDMAVBND = 24,
- IRDMA_HW_STAT_INDEX_RDMAVINV = 25,
- IRDMA_HW_STAT_INDEX_MAX_64_GEN_1 = 26, /* Must be same value as next entry */
- IRDMA_HW_STAT_INDEX_IP4RXMCOCTS = 26,
- IRDMA_HW_STAT_INDEX_IP4TXMCOCTS = 27,
- IRDMA_HW_STAT_INDEX_IP6RXMCOCTS = 28,
- IRDMA_HW_STAT_INDEX_IP6TXMCOCTS = 29,
- IRDMA_HW_STAT_INDEX_UDPRXPKTS = 30,
- IRDMA_HW_STAT_INDEX_UDPTXPKTS = 31,
- IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS = 32,
- IRDMA_HW_STAT_INDEX_MAX_64, /* Must be last entry */
+ IRDMA_STAT(IP4RXOCTS) = 0,
+ IRDMA_STAT(IP4RXPKTS) = 1,
+ IRDMA_STAT(IP4RXFRAGS) = 2,
+ IRDMA_STAT(IP4RXMCPKTS) = 3,
+ IRDMA_STAT(IP4TXOCTS) = 4,
+ IRDMA_STAT(IP4TXPKTS) = 5,
+ IRDMA_STAT(IP4TXFRAGS) = 6,
+ IRDMA_STAT(IP4TXMCPKTS) = 7,
+ IRDMA_STAT(IP6RXOCTS) = 8,
+ IRDMA_STAT(IP6RXPKTS) = 9,
+ IRDMA_STAT(IP6RXFRAGS) = 10,
+ IRDMA_STAT(IP6RXMCPKTS) = 11,
+ IRDMA_STAT(IP6TXOCTS) = 12,
+ IRDMA_STAT(IP6TXPKTS) = 13,
+ IRDMA_STAT(IP6TXFRAGS) = 14,
+ IRDMA_STAT(IP6TXMCPKTS) = 15,
+ IRDMA_STAT(TCPRXSEGS) = 16,
+ IRDMA_STAT(TCPTXSEG) = 17,
+ IRDMA_STAT(RDMARXRDS) = 18,
+ IRDMA_STAT(RDMARXSNDS) = 19,
+ IRDMA_STAT(RDMARXWRS) = 20,
+ IRDMA_STAT(RDMATXRDS) = 21,
+ IRDMA_STAT(RDMATXSNDS) = 22,
+ IRDMA_STAT(RDMATXWRS) = 23,
+ IRDMA_STAT(RDMAVBND) = 24,
+ IRDMA_STAT(RDMAVINV) = 25,
+ IRDMA_STAT(MAX_64_GEN_1) = 26, /* Must be same value as next entry */
+ IRDMA_STAT(IP4RXMCOCTS) = 26,
+ IRDMA_STAT(IP4TXMCOCTS) = 27,
+ IRDMA_STAT(IP6RXMCOCTS) = 28,
+ IRDMA_STAT(IP6TXMCOCTS) = 29,
+ IRDMA_STAT(UDPRXPKTS) = 30,
+ IRDMA_STAT(UDPTXPKTS) = 31,
+ IRDMA_STAT(RXNPECNMARKEDPKTS) = 32,
+ IRDMA_STAT(MAX_64), /* Must be last entry */
};

enum irdma_feature_type {
diff --git a/drivers/infiniband/hw/irdma/utils.c b/drivers/infiniband/hw/irdma/utils.c
index 2f078155d6fd0..32c1200810eb8 100644
--- a/drivers/infiniband/hw/irdma/utils.c
+++ b/drivers/infiniband/hw/irdma/utils.c
@@ -1705,155 +1705,53 @@ void irdma_cqp_gather_stats_gen1(struct irdma_sc_dev *dev,
stats_inst_offset_32 *= 4;
stats_inst_offset_64 = stats_inst_offset_32 * 2;

- gather_stats->rxvlanerr =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_RXVLANERR]
- + stats_inst_offset_32);
- gather_stats->ip4rxdiscard =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP4RXDISCARD]
- + stats_inst_offset_32);
- gather_stats->ip4rxtrunc =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP4RXTRUNC]
- + stats_inst_offset_32);
- gather_stats->ip4txnoroute =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE]
- + stats_inst_offset_32);
- gather_stats->ip6rxdiscard =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP6RXDISCARD]
- + stats_inst_offset_32);
- gather_stats->ip6rxtrunc =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP6RXTRUNC]
- + stats_inst_offset_32);
- gather_stats->ip6txnoroute =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE]
- + stats_inst_offset_32);
- gather_stats->tcprtxseg =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_TCPRTXSEG]
- + stats_inst_offset_32);
- gather_stats->tcprxopterr =
- rd32(dev->hw,
- dev->hw_stats_regs_32[IRDMA_HW_STAT_INDEX_TCPRXOPTERR]
- + stats_inst_offset_32);
-
- gather_stats->ip4rxocts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXOCTS]
- + stats_inst_offset_64);
- gather_stats->ip4rxpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXPKTS]
- + stats_inst_offset_64);
- gather_stats->ip4txfrag =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXFRAGS]
- + stats_inst_offset_64);
- gather_stats->ip4rxmcpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS]
- + stats_inst_offset_64);
- gather_stats->ip4txocts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXOCTS]
- + stats_inst_offset_64);
- gather_stats->ip4txpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXPKTS]
- + stats_inst_offset_64);
- gather_stats->ip4txfrag =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXFRAGS]
- + stats_inst_offset_64);
- gather_stats->ip4txmcpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS]
- + stats_inst_offset_64);
- gather_stats->ip6rxocts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXOCTS]
- + stats_inst_offset_64);
- gather_stats->ip6rxpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXPKTS]
- + stats_inst_offset_64);
- gather_stats->ip6txfrags =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXFRAGS]
- + stats_inst_offset_64);
- gather_stats->ip6rxmcpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS]
- + stats_inst_offset_64);
- gather_stats->ip6txocts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXOCTS]
- + stats_inst_offset_64);
- gather_stats->ip6txpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXPKTS]
- + stats_inst_offset_64);
- gather_stats->ip6txfrags =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXFRAGS]
- + stats_inst_offset_64);
- gather_stats->ip6txmcpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS]
- + stats_inst_offset_64);
- gather_stats->tcprxsegs =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_TCPRXSEGS]
- + stats_inst_offset_64);
- gather_stats->tcptxsegs =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_TCPTXSEG]
- + stats_inst_offset_64);
- gather_stats->rdmarxrds =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMARXRDS]
- + stats_inst_offset_64);
- gather_stats->rdmarxsnds =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMARXSNDS]
- + stats_inst_offset_64);
- gather_stats->rdmarxwrs =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMARXWRS]
- + stats_inst_offset_64);
- gather_stats->rdmatxrds =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMATXRDS]
- + stats_inst_offset_64);
- gather_stats->rdmatxsnds =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMATXSNDS]
- + stats_inst_offset_64);
- gather_stats->rdmatxwrs =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMATXWRS]
- + stats_inst_offset_64);
- gather_stats->rdmavbn =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMAVBND]
- + stats_inst_offset_64);
- gather_stats->rdmavinv =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMAVINV]
- + stats_inst_offset_64);
- gather_stats->udprxpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_UDPRXPKTS]
- + stats_inst_offset_64);
- gather_stats->udptxpkts =
- rd64(dev->hw,
- dev->hw_stats_regs_64[IRDMA_HW_STAT_INDEX_UDPTXPKTS]
- + stats_inst_offset_64);
+#define get32(index) \
+ rd32(dev->hw, \
+ dev->hw_stats_regs_32[IRDMA_STAT(index)] + \
+ stats_inst_offset_32)
+#define get64(index) \
+ rd64(dev->hw, \
+ dev->hw_stats_regs_64[IRDMA_STAT(index)] + \
+ stats_inst_offset_64)
+
+ gather_stats->rxvlanerr = get32(RXVLANERR);
+ gather_stats->ip4rxdiscard = get32(IP4RXDISCARD);
+ gather_stats->ip4rxtrunc = get32(IP4RXTRUNC);
+ gather_stats->ip4txnoroute = get32(IP4TXNOROUTE);
+ gather_stats->ip6rxdiscard = get32(IP6RXDISCARD);
+ gather_stats->ip6rxtrunc = get32(IP6RXTRUNC);
+ gather_stats->ip6txnoroute = get32(IP6TXNOROUTE);
+ gather_stats->tcprtxseg = get32(TCPRTXSEG);
+ gather_stats->tcprxopterr = get32(TCPRXOPTERR);
+
+ gather_stats->ip4rxocts = get64(IP4RXOCTS);
+ gather_stats->ip4rxpkts = get64(IP4RXPKTS);
+ gather_stats->ip4rxfrags = get64(IP4RXFRAGS);
+ gather_stats->ip4rxmcpkts = get64(IP4RXMCPKTS);
+ gather_stats->ip4txocts = get64(IP4TXOCTS);
+ gather_stats->ip4txpkts = get64(IP4TXPKTS);
+ gather_stats->ip4txfrag = get64(IP4TXFRAGS);
+ gather_stats->ip4txmcpkts = get64(IP4TXMCPKTS);
+ gather_stats->ip6rxocts = get64(IP6RXOCTS);
+ gather_stats->ip6rxpkts = get64(IP6RXPKTS);
+ gather_stats->ip6rxfrags = get64(IP6RXFRAGS);
+ gather_stats->ip6rxmcpkts = get64(IP6RXMCPKTS);
+ gather_stats->ip6txocts = get64(IP6TXOCTS);
+ gather_stats->ip6txpkts = get64(IP6TXPKTS);
+ gather_stats->ip6txfrags = get64(IP6TXFRAGS);
+ gather_stats->ip6txmcpkts = get64(IP6TXMCPKTS);
+ gather_stats->tcprxsegs = get64(TCPRXSEGS);
+ gather_stats->tcptxsegs = get64(TCPTXSEG);
+ gather_stats->rdmarxrds = get64(RDMARXRDS);
+ gather_stats->rdmarxsnds = get64(RDMARXSNDS);
+ gather_stats->rdmarxwrs = get64(RDMARXWRS);
+ gather_stats->rdmatxrds = get64(RDMATXRDS);
+ gather_stats->rdmatxsnds = get64(RDMATXSNDS);
+ gather_stats->rdmatxwrs = get64(RDMATXWRS);
+ gather_stats->rdmavbn = get64(RDMAVBND);
+ gather_stats->rdmavinv = get64(RDMAVINV);
+ gather_stats->udprxpkts = get64(UDPRXPKTS);
+ gather_stats->udptxpkts = get64(UDPTXPKTS);

irdma_process_stats(pestat);
}
diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
index 2941552932431..cc8e7be0614ed 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -3634,87 +3634,54 @@ static int irdma_iw_port_immutable(struct ib_device *ibdev, u32 port_num,

static const char *const irdma_hw_stat_names[] = {
/* 32bit names */
- [IRDMA_HW_STAT_INDEX_RXVLANERR] = "rxVlanErrors",
- [IRDMA_HW_STAT_INDEX_IP4RXDISCARD] = "ip4InDiscards",
- [IRDMA_HW_STAT_INDEX_IP4RXTRUNC] = "ip4InTruncatedPkts",
- [IRDMA_HW_STAT_INDEX_IP4TXNOROUTE] = "ip4OutNoRoutes",
- [IRDMA_HW_STAT_INDEX_IP6RXDISCARD] = "ip6InDiscards",
- [IRDMA_HW_STAT_INDEX_IP6RXTRUNC] = "ip6InTruncatedPkts",
- [IRDMA_HW_STAT_INDEX_IP6TXNOROUTE] = "ip6OutNoRoutes",
- [IRDMA_HW_STAT_INDEX_TCPRTXSEG] = "tcpRetransSegs",
- [IRDMA_HW_STAT_INDEX_TCPRXOPTERR] = "tcpInOptErrors",
- [IRDMA_HW_STAT_INDEX_TCPRXPROTOERR] = "tcpInProtoErrors",
- [IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED] = "cnpHandled",
- [IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED] = "cnpIgnored",
- [IRDMA_HW_STAT_INDEX_TXNPCNPSENT] = "cnpSent",
+ [IRDMA_STAT_32(RXVLANERR)] = "rxVlanErrors",
+ [IRDMA_STAT_32(IP4RXDISCARD)] = "ip4InDiscards",
+ [IRDMA_STAT_32(IP4RXTRUNC)] = "ip4InTruncatedPkts",
+ [IRDMA_STAT_32(IP4TXNOROUTE)] = "ip4OutNoRoutes",
+ [IRDMA_STAT_32(IP6RXDISCARD)] = "ip6InDiscards",
+ [IRDMA_STAT_32(IP6RXTRUNC)] = "ip6InTruncatedPkts",
+ [IRDMA_STAT_32(IP6TXNOROUTE)] = "ip6OutNoRoutes",
+ [IRDMA_STAT_32(TCPRTXSEG)] = "tcpRetransSegs",
+ [IRDMA_STAT_32(TCPRXOPTERR)] = "tcpInOptErrors",
+ [IRDMA_STAT_32(TCPRXPROTOERR)] = "tcpInProtoErrors",
+ [IRDMA_STAT_32(RXRPCNPHANDLED)] = "cnpHandled",
+ [IRDMA_STAT_32(RXRPCNPIGNORED)] = "cnpIgnored",
+ [IRDMA_STAT_32(TXNPCNPSENT)] = "cnpSent",

/* 64bit names */
- [IRDMA_HW_STAT_INDEX_IP4RXOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4InOctets",
- [IRDMA_HW_STAT_INDEX_IP4RXPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4InPkts",
- [IRDMA_HW_STAT_INDEX_IP4RXFRAGS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4InReasmRqd",
- [IRDMA_HW_STAT_INDEX_IP4RXMCOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4InMcastOctets",
- [IRDMA_HW_STAT_INDEX_IP4RXMCPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4InMcastPkts",
- [IRDMA_HW_STAT_INDEX_IP4TXOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4OutOctets",
- [IRDMA_HW_STAT_INDEX_IP4TXPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4OutPkts",
- [IRDMA_HW_STAT_INDEX_IP4TXFRAGS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4OutSegRqd",
- [IRDMA_HW_STAT_INDEX_IP4TXMCOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4OutMcastOctets",
- [IRDMA_HW_STAT_INDEX_IP4TXMCPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip4OutMcastPkts",
- [IRDMA_HW_STAT_INDEX_IP6RXOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6InOctets",
- [IRDMA_HW_STAT_INDEX_IP6RXPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6InPkts",
- [IRDMA_HW_STAT_INDEX_IP6RXFRAGS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6InReasmRqd",
- [IRDMA_HW_STAT_INDEX_IP6RXMCOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6InMcastOctets",
- [IRDMA_HW_STAT_INDEX_IP6RXMCPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6InMcastPkts",
- [IRDMA_HW_STAT_INDEX_IP6TXOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6OutOctets",
- [IRDMA_HW_STAT_INDEX_IP6TXPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6OutPkts",
- [IRDMA_HW_STAT_INDEX_IP6TXFRAGS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6OutSegRqd",
- [IRDMA_HW_STAT_INDEX_IP6TXMCOCTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6OutMcastOctets",
- [IRDMA_HW_STAT_INDEX_IP6TXMCPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "ip6OutMcastPkts",
- [IRDMA_HW_STAT_INDEX_TCPRXSEGS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "tcpInSegs",
- [IRDMA_HW_STAT_INDEX_TCPTXSEG + IRDMA_HW_STAT_INDEX_MAX_32] =
- "tcpOutSegs",
- [IRDMA_HW_STAT_INDEX_RDMARXRDS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwInRdmaReads",
- [IRDMA_HW_STAT_INDEX_RDMARXSNDS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwInRdmaSends",
- [IRDMA_HW_STAT_INDEX_RDMARXWRS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwInRdmaWrites",
- [IRDMA_HW_STAT_INDEX_RDMATXRDS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwOutRdmaReads",
- [IRDMA_HW_STAT_INDEX_RDMATXSNDS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwOutRdmaSends",
- [IRDMA_HW_STAT_INDEX_RDMATXWRS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwOutRdmaWrites",
- [IRDMA_HW_STAT_INDEX_RDMAVBND + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwRdmaBnd",
- [IRDMA_HW_STAT_INDEX_RDMAVINV + IRDMA_HW_STAT_INDEX_MAX_32] =
- "iwRdmaInv",
- [IRDMA_HW_STAT_INDEX_UDPRXPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "RxUDP",
- [IRDMA_HW_STAT_INDEX_UDPTXPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "TxUDP",
- [IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS + IRDMA_HW_STAT_INDEX_MAX_32] =
- "RxECNMrkd",
+ [IRDMA_STAT_64(IP4RXOCTS)] = "ip4InOctets",
+ [IRDMA_STAT_64(IP4RXPKTS)] = "ip4InPkts",
+ [IRDMA_STAT_64(IP4RXFRAGS)] = "ip4InReasmRqd",
+ [IRDMA_STAT_64(IP4RXMCOCTS)] = "ip4InMcastOctets",
+ [IRDMA_STAT_64(IP4RXMCPKTS)] = "ip4InMcastPkts",
+ [IRDMA_STAT_64(IP4TXOCTS)] = "ip4OutOctets",
+ [IRDMA_STAT_64(IP4TXPKTS)] = "ip4OutPkts",
+ [IRDMA_STAT_64(IP4TXFRAGS)] = "ip4OutSegRqd",
+ [IRDMA_STAT_64(IP4TXMCOCTS)] = "ip4OutMcastOctets",
+ [IRDMA_STAT_64(IP4TXMCPKTS)] = "ip4OutMcastPkts",
+ [IRDMA_STAT_64(IP6RXOCTS)] = "ip6InOctets",
+ [IRDMA_STAT_64(IP6RXPKTS)] = "ip6InPkts",
+ [IRDMA_STAT_64(IP6RXFRAGS)] = "ip6InReasmRqd",
+ [IRDMA_STAT_64(IP6RXMCOCTS)] = "ip6InMcastOctets",
+ [IRDMA_STAT_64(IP6RXMCPKTS)] = "ip6InMcastPkts",
+ [IRDMA_STAT_64(IP6TXOCTS)] = "ip6OutOctets",
+ [IRDMA_STAT_64(IP6TXPKTS)] = "ip6OutPkts",
+ [IRDMA_STAT_64(IP6TXFRAGS)] = "ip6OutSegRqd",
+ [IRDMA_STAT_64(IP6TXMCOCTS)] = "ip6OutMcastOctets",
+ [IRDMA_STAT_64(IP6TXMCPKTS)] = "ip6OutMcastPkts",
+ [IRDMA_STAT_64(TCPRXSEGS)] = "tcpInSegs",
+ [IRDMA_STAT_64(TCPTXSEG)] = "tcpOutSegs",
+ [IRDMA_STAT_64(RDMARXRDS)] = "iwInRdmaReads",
+ [IRDMA_STAT_64(RDMARXSNDS)] = "iwInRdmaSends",
+ [IRDMA_STAT_64(RDMARXWRS)] = "iwInRdmaWrites",
+ [IRDMA_STAT_64(RDMATXRDS)] = "iwOutRdmaReads",
+ [IRDMA_STAT_64(RDMATXSNDS)] = "iwOutRdmaSends",
+ [IRDMA_STAT_64(RDMATXWRS)] = "iwOutRdmaWrites",
+ [IRDMA_STAT_64(RDMAVBND)] = "iwRdmaBnd",
+ [IRDMA_STAT_64(RDMAVINV)] = "iwRdmaInv",
+ [IRDMA_STAT_64(UDPRXPKTS)] = "RxUDP",
+ [IRDMA_STAT_64(UDPTXPKTS)] = "TxUDP",
+ [IRDMA_STAT_64(RXNPECNMARKEDPKTS)] = "RxECNMrkd",
};

static void irdma_get_dev_fw_str(struct ib_device *dev, char *str)

2021-06-07 22:42:47

by Shiraz Saleem

[permalink] [raw]
Subject: RE: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?

> Subject: Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
>
> On Mon, 2021-06-07 at 14:54 +0000, Saleem, Shiraz wrote:
> > > Subject: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
> > >
> > > There are some odd mismatches in field and access index.
> > > These may be simple cut/paste typos.
> > >
> > > Are these intentional?
> >
> > No. Accidental. Likely cut/copy mistake. I will send a fix. Thanks
> > Joe!
>
> Reason is I was refactoring what I thought was rather templated and overly verbose
> code.
>
> Here's a possible patch (with probable corrections to these index typos):

Looks reasonable to me. Wondering if irdma_update_stats should also use your IRDMA_STAT macro.

> ---
> drivers/infiniband/hw/irdma/type.h | 104 ++++++++++---------
> drivers/infiniband/hw/irdma/utils.c | 196 +++++++++---------------------------
> drivers/infiniband/hw/irdma/verbs.c | 125 +++++++++--------------
> 3 files changed, 147 insertions(+), 278 deletions(-)
>
> diff --git a/drivers/infiniband/hw/irdma/type.h b/drivers/infiniband/hw/irdma/type.h
> index 7387b83e826d2..4050e5b19c6e1 100644
> --- a/drivers/infiniband/hw/irdma/type.h
> +++ b/drivers/infiniband/hw/irdma/type.h
> @@ -101,60 +101,64 @@ enum irdma_qp_event_type {
> IRDMA_QP_EVENT_ACCESS_ERR,
> };
>
> +#define IRDMA_STAT(index) IRDMA_HW_STAT_INDEX_ ## index
> +#define IRDMA_STAT_32(index) (IRDMA_HW_STAT_INDEX_ ## index) #define
> +IRDMA_STAT_64(index) (IRDMA_HW_STAT_INDEX_MAX_32 +
> +IRDMA_STAT_32(index))
> +
> enum irdma_hw_stats_index_32b {
> - IRDMA_HW_STAT_INDEX_IP4RXDISCARD = 0,
> - IRDMA_HW_STAT_INDEX_IP4RXTRUNC = 1,
> - IRDMA_HW_STAT_INDEX_IP4TXNOROUTE = 2,
> - IRDMA_HW_STAT_INDEX_IP6RXDISCARD = 3,
> - IRDMA_HW_STAT_INDEX_IP6RXTRUNC = 4,
> - IRDMA_HW_STAT_INDEX_IP6TXNOROUTE = 5,
> - IRDMA_HW_STAT_INDEX_TCPRTXSEG = 6,
> - IRDMA_HW_STAT_INDEX_TCPRXOPTERR = 7,
> - IRDMA_HW_STAT_INDEX_TCPRXPROTOERR = 8,
> - IRDMA_HW_STAT_INDEX_MAX_32_GEN_1 = 9, /* Must be same
> value as next entry */
> - IRDMA_HW_STAT_INDEX_RXVLANERR = 9,
> - IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED = 10,
> - IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED = 11,
> - IRDMA_HW_STAT_INDEX_TXNPCNPSENT = 12,
> - IRDMA_HW_STAT_INDEX_MAX_32, /* Must be last entry */
> + IRDMA_STAT(IP4RXDISCARD) = 0,
> + IRDMA_STAT(IP4RXTRUNC) = 1,
> + IRDMA_STAT(IP4TXNOROUTE) = 2,
> + IRDMA_STAT(IP6RXDISCARD) = 3,
> + IRDMA_STAT(IP6RXTRUNC) = 4,
> + IRDMA_STAT(IP6TXNOROUTE) = 5,
> + IRDMA_STAT(TCPRTXSEG) = 6,
> + IRDMA_STAT(TCPRXOPTERR) = 7,
> + IRDMA_STAT(TCPRXPROTOERR) = 8,
> + IRDMA_STAT(MAX_32_GEN_1) = 9, /* Must be same value as next entry */
> + IRDMA_STAT(RXVLANERR) = 9,
> + IRDMA_STAT(RXRPCNPHANDLED) = 10,
> + IRDMA_STAT(RXRPCNPIGNORED) = 11,
> + IRDMA_STAT(TXNPCNPSENT) = 12,
> + IRDMA_STAT(MAX_32), /* Must be last entry */
> };
>
> enum irdma_hw_stats_index_64b {
> - IRDMA_HW_STAT_INDEX_IP4RXOCTS = 0,
> - IRDMA_HW_STAT_INDEX_IP4RXPKTS = 1,
> - IRDMA_HW_STAT_INDEX_IP4RXFRAGS = 2,
> - IRDMA_HW_STAT_INDEX_IP4RXMCPKTS = 3,
> - IRDMA_HW_STAT_INDEX_IP4TXOCTS = 4,
> - IRDMA_HW_STAT_INDEX_IP4TXPKTS = 5,
> - IRDMA_HW_STAT_INDEX_IP4TXFRAGS = 6,
> - IRDMA_HW_STAT_INDEX_IP4TXMCPKTS = 7,
> - IRDMA_HW_STAT_INDEX_IP6RXOCTS = 8,
> - IRDMA_HW_STAT_INDEX_IP6RXPKTS = 9,
> - IRDMA_HW_STAT_INDEX_IP6RXFRAGS = 10,
> - IRDMA_HW_STAT_INDEX_IP6RXMCPKTS = 11,
> - IRDMA_HW_STAT_INDEX_IP6TXOCTS = 12,
> - IRDMA_HW_STAT_INDEX_IP6TXPKTS = 13,
> - IRDMA_HW_STAT_INDEX_IP6TXFRAGS = 14,
> - IRDMA_HW_STAT_INDEX_IP6TXMCPKTS = 15,
> - IRDMA_HW_STAT_INDEX_TCPRXSEGS = 16,
> - IRDMA_HW_STAT_INDEX_TCPTXSEG = 17,
> - IRDMA_HW_STAT_INDEX_RDMARXRDS = 18,
> - IRDMA_HW_STAT_INDEX_RDMARXSNDS = 19,
> - IRDMA_HW_STAT_INDEX_RDMARXWRS = 20,
> - IRDMA_HW_STAT_INDEX_RDMATXRDS = 21,
> - IRDMA_HW_STAT_INDEX_RDMATXSNDS = 22,
> - IRDMA_HW_STAT_INDEX_RDMATXWRS = 23,
> - IRDMA_HW_STAT_INDEX_RDMAVBND = 24,
> - IRDMA_HW_STAT_INDEX_RDMAVINV = 25,
> - IRDMA_HW_STAT_INDEX_MAX_64_GEN_1 = 26, /* Must be same value
> as next entry */
> - IRDMA_HW_STAT_INDEX_IP4RXMCOCTS = 26,
> - IRDMA_HW_STAT_INDEX_IP4TXMCOCTS = 27,
> - IRDMA_HW_STAT_INDEX_IP6RXMCOCTS = 28,
> - IRDMA_HW_STAT_INDEX_IP6TXMCOCTS = 29,
> - IRDMA_HW_STAT_INDEX_UDPRXPKTS = 30,
> - IRDMA_HW_STAT_INDEX_UDPTXPKTS = 31,
> - IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS = 32,
> - IRDMA_HW_STAT_INDEX_MAX_64, /* Must be last entry */
> + IRDMA_STAT(IP4RXOCTS) = 0,
> + IRDMA_STAT(IP4RXPKTS) = 1,
> + IRDMA_STAT(IP4RXFRAGS) = 2,
> + IRDMA_STAT(IP4RXMCPKTS) = 3,
> + IRDMA_STAT(IP4TXOCTS) = 4,
> + IRDMA_STAT(IP4TXPKTS) = 5,
> + IRDMA_STAT(IP4TXFRAGS) = 6,
> + IRDMA_STAT(IP4TXMCPKTS) = 7,
> + IRDMA_STAT(IP6RXOCTS) = 8,
> + IRDMA_STAT(IP6RXPKTS) = 9,
> + IRDMA_STAT(IP6RXFRAGS) = 10,
> + IRDMA_STAT(IP6RXMCPKTS) = 11,
> + IRDMA_STAT(IP6TXOCTS) = 12,
> + IRDMA_STAT(IP6TXPKTS) = 13,
> + IRDMA_STAT(IP6TXFRAGS) = 14,
> + IRDMA_STAT(IP6TXMCPKTS) = 15,
> + IRDMA_STAT(TCPRXSEGS) = 16,
> + IRDMA_STAT(TCPTXSEG) = 17,
> + IRDMA_STAT(RDMARXRDS) = 18,
> + IRDMA_STAT(RDMARXSNDS) = 19,
> + IRDMA_STAT(RDMARXWRS) = 20,
> + IRDMA_STAT(RDMATXRDS) = 21,
> + IRDMA_STAT(RDMATXSNDS) = 22,
> + IRDMA_STAT(RDMATXWRS) = 23,
> + IRDMA_STAT(RDMAVBND) = 24,
> + IRDMA_STAT(RDMAVINV) = 25,
> + IRDMA_STAT(MAX_64_GEN_1) = 26, /* Must be same value as next entry
> */
> + IRDMA_STAT(IP4RXMCOCTS) = 26,
> + IRDMA_STAT(IP4TXMCOCTS) = 27,
> + IRDMA_STAT(IP6RXMCOCTS) = 28,
> + IRDMA_STAT(IP6TXMCOCTS) = 29,
> + IRDMA_STAT(UDPRXPKTS) = 30,
> + IRDMA_STAT(UDPTXPKTS) = 31,
> + IRDMA_STAT(RXNPECNMARKEDPKTS) = 32,
> + IRDMA_STAT(MAX_64), /* Must be last entry */
> };
>
> enum irdma_feature_type {
> diff --git a/drivers/infiniband/hw/irdma/utils.c b/drivers/infiniband/hw/irdma/utils.c
> index 2f078155d6fd0..32c1200810eb8 100644
> --- a/drivers/infiniband/hw/irdma/utils.c
> +++ b/drivers/infiniband/hw/irdma/utils.c
> @@ -1705,155 +1705,53 @@ void irdma_cqp_gather_stats_gen1(struct
> irdma_sc_dev *dev,
> stats_inst_offset_32 *= 4;
> stats_inst_offset_64 = stats_inst_offset_32 * 2;
>
> - gather_stats->rxvlanerr =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_RXVLANERR]
> - + stats_inst_offset_32);
> - gather_stats->ip4rxdiscard =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP4RXDISCARD]
> - + stats_inst_offset_32);
> - gather_stats->ip4rxtrunc =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP4RXTRUNC]
> - + stats_inst_offset_32);
> - gather_stats->ip4txnoroute =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE]
> - + stats_inst_offset_32);
> - gather_stats->ip6rxdiscard =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP6RXDISCARD]
> - + stats_inst_offset_32);
> - gather_stats->ip6rxtrunc =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP6RXTRUNC]
> - + stats_inst_offset_32);
> - gather_stats->ip6txnoroute =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE]
> - + stats_inst_offset_32);
> - gather_stats->tcprtxseg =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_TCPRTXSEG]
> - + stats_inst_offset_32);
> - gather_stats->tcprxopterr =
> - rd32(dev->hw,
> - dev-
> >hw_stats_regs_32[IRDMA_HW_STAT_INDEX_TCPRXOPTERR]
> - + stats_inst_offset_32);
> -
> - gather_stats->ip4rxocts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXOCTS]
> - + stats_inst_offset_64);
> - gather_stats->ip4rxpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXPKTS]
> - + stats_inst_offset_64);
> - gather_stats->ip4txfrag =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXFRAGS]
> - + stats_inst_offset_64);
> - gather_stats->ip4rxmcpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS]
> - + stats_inst_offset_64);
> - gather_stats->ip4txocts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXOCTS]
> - + stats_inst_offset_64);
> - gather_stats->ip4txpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXPKTS]
> - + stats_inst_offset_64);
> - gather_stats->ip4txfrag =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXFRAGS]
> - + stats_inst_offset_64);
> - gather_stats->ip4txmcpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS]
> - + stats_inst_offset_64);
> - gather_stats->ip6rxocts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXOCTS]
> - + stats_inst_offset_64);
> - gather_stats->ip6rxpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXPKTS]
> - + stats_inst_offset_64);
> - gather_stats->ip6txfrags =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXFRAGS]
> - + stats_inst_offset_64);
> - gather_stats->ip6rxmcpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS]
> - + stats_inst_offset_64);
> - gather_stats->ip6txocts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXOCTS]
> - + stats_inst_offset_64);
> - gather_stats->ip6txpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXPKTS]
> - + stats_inst_offset_64);
> - gather_stats->ip6txfrags =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXFRAGS]
> - + stats_inst_offset_64);
> - gather_stats->ip6txmcpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS]
> - + stats_inst_offset_64);
> - gather_stats->tcprxsegs =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_TCPRXSEGS]
> - + stats_inst_offset_64);
> - gather_stats->tcptxsegs =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_TCPTXSEG]
> - + stats_inst_offset_64);
> - gather_stats->rdmarxrds =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMARXRDS]
> - + stats_inst_offset_64);
> - gather_stats->rdmarxsnds =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMARXSNDS]
> - + stats_inst_offset_64);
> - gather_stats->rdmarxwrs =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMARXWRS]
> - + stats_inst_offset_64);
> - gather_stats->rdmatxrds =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMATXRDS]
> - + stats_inst_offset_64);
> - gather_stats->rdmatxsnds =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMATXSNDS]
> - + stats_inst_offset_64);
> - gather_stats->rdmatxwrs =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMATXWRS]
> - + stats_inst_offset_64);
> - gather_stats->rdmavbn =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMAVBND]
> - + stats_inst_offset_64);
> - gather_stats->rdmavinv =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_RDMAVINV]
> - + stats_inst_offset_64);
> - gather_stats->udprxpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_UDPRXPKTS]
> - + stats_inst_offset_64);
> - gather_stats->udptxpkts =
> - rd64(dev->hw,
> - dev-
> >hw_stats_regs_64[IRDMA_HW_STAT_INDEX_UDPTXPKTS]
> - + stats_inst_offset_64);
> +#define get32(index) \
> + rd32(dev->hw, \
> + dev->hw_stats_regs_32[IRDMA_STAT(index)] + \
> + stats_inst_offset_32)
> +#define get64(index) \
> + rd64(dev->hw, \
> + dev->hw_stats_regs_64[IRDMA_STAT(index)] + \
> + stats_inst_offset_64)
> +
> + gather_stats->rxvlanerr = get32(RXVLANERR);
> + gather_stats->ip4rxdiscard = get32(IP4RXDISCARD);
> + gather_stats->ip4rxtrunc = get32(IP4RXTRUNC);
> + gather_stats->ip4txnoroute = get32(IP4TXNOROUTE);
> + gather_stats->ip6rxdiscard = get32(IP6RXDISCARD);
> + gather_stats->ip6rxtrunc = get32(IP6RXTRUNC);
> + gather_stats->ip6txnoroute = get32(IP6TXNOROUTE);
> + gather_stats->tcprtxseg = get32(TCPRTXSEG);
> + gather_stats->tcprxopterr = get32(TCPRXOPTERR);
> +
> + gather_stats->ip4rxocts = get64(IP4RXOCTS);
> + gather_stats->ip4rxpkts = get64(IP4RXPKTS);
> + gather_stats->ip4rxfrags = get64(IP4RXFRAGS);
> + gather_stats->ip4rxmcpkts = get64(IP4RXMCPKTS);
> + gather_stats->ip4txocts = get64(IP4TXOCTS);
> + gather_stats->ip4txpkts = get64(IP4TXPKTS);
> + gather_stats->ip4txfrag = get64(IP4TXFRAGS);
> + gather_stats->ip4txmcpkts = get64(IP4TXMCPKTS);
> + gather_stats->ip6rxocts = get64(IP6RXOCTS);
> + gather_stats->ip6rxpkts = get64(IP6RXPKTS);
> + gather_stats->ip6rxfrags = get64(IP6RXFRAGS);
> + gather_stats->ip6rxmcpkts = get64(IP6RXMCPKTS);
> + gather_stats->ip6txocts = get64(IP6TXOCTS);
> + gather_stats->ip6txpkts = get64(IP6TXPKTS);
> + gather_stats->ip6txfrags = get64(IP6TXFRAGS);
> + gather_stats->ip6txmcpkts = get64(IP6TXMCPKTS);
> + gather_stats->tcprxsegs = get64(TCPRXSEGS);
> + gather_stats->tcptxsegs = get64(TCPTXSEG);
> + gather_stats->rdmarxrds = get64(RDMARXRDS);
> + gather_stats->rdmarxsnds = get64(RDMARXSNDS);
> + gather_stats->rdmarxwrs = get64(RDMARXWRS);
> + gather_stats->rdmatxrds = get64(RDMATXRDS);
> + gather_stats->rdmatxsnds = get64(RDMATXSNDS);
> + gather_stats->rdmatxwrs = get64(RDMATXWRS);
> + gather_stats->rdmavbn = get64(RDMAVBND);
> + gather_stats->rdmavinv = get64(RDMAVINV);
> + gather_stats->udprxpkts = get64(UDPRXPKTS);
> + gather_stats->udptxpkts = get64(UDPTXPKTS);
>
> irdma_process_stats(pestat);
> }
> diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
> index 2941552932431..cc8e7be0614ed 100644
> --- a/drivers/infiniband/hw/irdma/verbs.c
> +++ b/drivers/infiniband/hw/irdma/verbs.c
> @@ -3634,87 +3634,54 @@ static int irdma_iw_port_immutable(struct ib_device
> *ibdev, u32 port_num,
>
> static const char *const irdma_hw_stat_names[] = {
> /* 32bit names */
> - [IRDMA_HW_STAT_INDEX_RXVLANERR] = "rxVlanErrors",
> - [IRDMA_HW_STAT_INDEX_IP4RXDISCARD] = "ip4InDiscards",
> - [IRDMA_HW_STAT_INDEX_IP4RXTRUNC] = "ip4InTruncatedPkts",
> - [IRDMA_HW_STAT_INDEX_IP4TXNOROUTE] = "ip4OutNoRoutes",
> - [IRDMA_HW_STAT_INDEX_IP6RXDISCARD] = "ip6InDiscards",
> - [IRDMA_HW_STAT_INDEX_IP6RXTRUNC] = "ip6InTruncatedPkts",
> - [IRDMA_HW_STAT_INDEX_IP6TXNOROUTE] = "ip6OutNoRoutes",
> - [IRDMA_HW_STAT_INDEX_TCPRTXSEG] = "tcpRetransSegs",
> - [IRDMA_HW_STAT_INDEX_TCPRXOPTERR] = "tcpInOptErrors",
> - [IRDMA_HW_STAT_INDEX_TCPRXPROTOERR] = "tcpInProtoErrors",
> - [IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED] = "cnpHandled",
> - [IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED] = "cnpIgnored",
> - [IRDMA_HW_STAT_INDEX_TXNPCNPSENT] = "cnpSent",
> + [IRDMA_STAT_32(RXVLANERR)] = "rxVlanErrors",
> + [IRDMA_STAT_32(IP4RXDISCARD)] = "ip4InDiscards",
> + [IRDMA_STAT_32(IP4RXTRUNC)] = "ip4InTruncatedPkts",
> + [IRDMA_STAT_32(IP4TXNOROUTE)] = "ip4OutNoRoutes",
> + [IRDMA_STAT_32(IP6RXDISCARD)] = "ip6InDiscards",
> + [IRDMA_STAT_32(IP6RXTRUNC)] = "ip6InTruncatedPkts",
> + [IRDMA_STAT_32(IP6TXNOROUTE)] = "ip6OutNoRoutes",
> + [IRDMA_STAT_32(TCPRTXSEG)] = "tcpRetransSegs",
> + [IRDMA_STAT_32(TCPRXOPTERR)] = "tcpInOptErrors",
> + [IRDMA_STAT_32(TCPRXPROTOERR)] = "tcpInProtoErrors",
> + [IRDMA_STAT_32(RXRPCNPHANDLED)] = "cnpHandled",
> + [IRDMA_STAT_32(RXRPCNPIGNORED)] = "cnpIgnored",
> + [IRDMA_STAT_32(TXNPCNPSENT)] = "cnpSent",
>
> /* 64bit names */
> - [IRDMA_HW_STAT_INDEX_IP4RXOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4InOctets",
> - [IRDMA_HW_STAT_INDEX_IP4RXPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4InPkts",
> - [IRDMA_HW_STAT_INDEX_IP4RXFRAGS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4InReasmRqd",
> - [IRDMA_HW_STAT_INDEX_IP4RXMCOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4InMcastOctets",
> - [IRDMA_HW_STAT_INDEX_IP4RXMCPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4InMcastPkts",
> - [IRDMA_HW_STAT_INDEX_IP4TXOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4OutOctets",
> - [IRDMA_HW_STAT_INDEX_IP4TXPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4OutPkts",
> - [IRDMA_HW_STAT_INDEX_IP4TXFRAGS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4OutSegRqd",
> - [IRDMA_HW_STAT_INDEX_IP4TXMCOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4OutMcastOctets",
> - [IRDMA_HW_STAT_INDEX_IP4TXMCPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip4OutMcastPkts",
> - [IRDMA_HW_STAT_INDEX_IP6RXOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6InOctets",
> - [IRDMA_HW_STAT_INDEX_IP6RXPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6InPkts",
> - [IRDMA_HW_STAT_INDEX_IP6RXFRAGS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6InReasmRqd",
> - [IRDMA_HW_STAT_INDEX_IP6RXMCOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6InMcastOctets",
> - [IRDMA_HW_STAT_INDEX_IP6RXMCPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6InMcastPkts",
> - [IRDMA_HW_STAT_INDEX_IP6TXOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6OutOctets",
> - [IRDMA_HW_STAT_INDEX_IP6TXPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6OutPkts",
> - [IRDMA_HW_STAT_INDEX_IP6TXFRAGS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6OutSegRqd",
> - [IRDMA_HW_STAT_INDEX_IP6TXMCOCTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6OutMcastOctets",
> - [IRDMA_HW_STAT_INDEX_IP6TXMCPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "ip6OutMcastPkts",
> - [IRDMA_HW_STAT_INDEX_TCPRXSEGS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "tcpInSegs",
> - [IRDMA_HW_STAT_INDEX_TCPTXSEG +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "tcpOutSegs",
> - [IRDMA_HW_STAT_INDEX_RDMARXRDS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwInRdmaReads",
> - [IRDMA_HW_STAT_INDEX_RDMARXSNDS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwInRdmaSends",
> - [IRDMA_HW_STAT_INDEX_RDMARXWRS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwInRdmaWrites",
> - [IRDMA_HW_STAT_INDEX_RDMATXRDS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwOutRdmaReads",
> - [IRDMA_HW_STAT_INDEX_RDMATXSNDS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwOutRdmaSends",
> - [IRDMA_HW_STAT_INDEX_RDMATXWRS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwOutRdmaWrites",
> - [IRDMA_HW_STAT_INDEX_RDMAVBND +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwRdmaBnd",
> - [IRDMA_HW_STAT_INDEX_RDMAVINV +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "iwRdmaInv",
> - [IRDMA_HW_STAT_INDEX_UDPRXPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "RxUDP",
> - [IRDMA_HW_STAT_INDEX_UDPTXPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "TxUDP",
> - [IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS +
> IRDMA_HW_STAT_INDEX_MAX_32] =
> - "RxECNMrkd",
> + [IRDMA_STAT_64(IP4RXOCTS)] = "ip4InOctets",
> + [IRDMA_STAT_64(IP4RXPKTS)] = "ip4InPkts",
> + [IRDMA_STAT_64(IP4RXFRAGS)] = "ip4InReasmRqd",
> + [IRDMA_STAT_64(IP4RXMCOCTS)] = "ip4InMcastOctets",
> + [IRDMA_STAT_64(IP4RXMCPKTS)] = "ip4InMcastPkts",
> + [IRDMA_STAT_64(IP4TXOCTS)] = "ip4OutOctets",
> + [IRDMA_STAT_64(IP4TXPKTS)] = "ip4OutPkts",
> + [IRDMA_STAT_64(IP4TXFRAGS)] = "ip4OutSegRqd",
> + [IRDMA_STAT_64(IP4TXMCOCTS)] = "ip4OutMcastOctets",
> + [IRDMA_STAT_64(IP4TXMCPKTS)] = "ip4OutMcastPkts",
> + [IRDMA_STAT_64(IP6RXOCTS)] = "ip6InOctets",
> + [IRDMA_STAT_64(IP6RXPKTS)] = "ip6InPkts",
> + [IRDMA_STAT_64(IP6RXFRAGS)] = "ip6InReasmRqd",
> + [IRDMA_STAT_64(IP6RXMCOCTS)] = "ip6InMcastOctets",
> + [IRDMA_STAT_64(IP6RXMCPKTS)] = "ip6InMcastPkts",
> + [IRDMA_STAT_64(IP6TXOCTS)] = "ip6OutOctets",
> + [IRDMA_STAT_64(IP6TXPKTS)] = "ip6OutPkts",
> + [IRDMA_STAT_64(IP6TXFRAGS)] = "ip6OutSegRqd",
> + [IRDMA_STAT_64(IP6TXMCOCTS)] = "ip6OutMcastOctets",
> + [IRDMA_STAT_64(IP6TXMCPKTS)] = "ip6OutMcastPkts",
> + [IRDMA_STAT_64(TCPRXSEGS)] = "tcpInSegs",
> + [IRDMA_STAT_64(TCPTXSEG)] = "tcpOutSegs",
> + [IRDMA_STAT_64(RDMARXRDS)] = "iwInRdmaReads",
> + [IRDMA_STAT_64(RDMARXSNDS)] = "iwInRdmaSends",
> + [IRDMA_STAT_64(RDMARXWRS)] = "iwInRdmaWrites",
> + [IRDMA_STAT_64(RDMATXRDS)] = "iwOutRdmaReads",
> + [IRDMA_STAT_64(RDMATXSNDS)] = "iwOutRdmaSends",
> + [IRDMA_STAT_64(RDMATXWRS)] = "iwOutRdmaWrites",
> + [IRDMA_STAT_64(RDMAVBND)] = "iwRdmaBnd",
> + [IRDMA_STAT_64(RDMAVINV)] = "iwRdmaInv",
> + [IRDMA_STAT_64(UDPRXPKTS)] = "RxUDP",
> + [IRDMA_STAT_64(UDPTXPKTS)] = "TxUDP",
> + [IRDMA_STAT_64(RXNPECNMARKEDPKTS)] = "RxECNMrkd",
> };
>
> static void irdma_get_dev_fw_str(struct ib_device *dev, char *str)

2021-06-07 23:39:21

by Joe Perches

[permalink] [raw]
Subject: Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?

On Mon, 2021-06-07 at 22:40 +0000, Saleem, Shiraz wrote:
> > Subject: Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
> >
> > On Mon, 2021-06-07 at 14:54 +0000, Saleem, Shiraz wrote:
> > > > Subject: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
> > > >
> > > > There are some odd mismatches in field and access index.
> > > > These may be simple cut/paste typos.
> > > >
> > > > Are these intentional?
> > >
> > > No. Accidental. Likely cut/copy mistake. I will send a fix. Thanks
> > > Joe!
> >
> > Reason is I was refactoring what I thought was rather templated and
> > overly verbose
> > code.
> >
> > Here's a possible patch (with probable corrections to these index
> > typos):
>
> Looks reasonable to me. Wondering if irdma_update_stats should also
> use your IRDMA_STAT macro.

Probably, and it could really a macro or two of its own.

And it looks like that block has it's own copy/paste defects.

Maybe:
---
drivers/infiniband/hw/irdma/ctrl.c | 219 +++++++++----------------------------
1 file changed, 51 insertions(+), 168 deletions(-)

diff --git a/drivers/infiniband/hw/irdma/ctrl.c b/drivers/infiniband/hw/irdma/ctrl.c
index 5aa112067bce8..90c6f82ea0c8d 100644
--- a/drivers/infiniband/hw/irdma/ctrl.c
+++ b/drivers/infiniband/hw/irdma/ctrl.c
@@ -5484,174 +5484,57 @@ void irdma_update_stats(struct irdma_dev_hw_stats *hw_stats,
{
u64 *stats_val = hw_stats->stats_val_32;

- stats_val[IRDMA_HW_STAT_INDEX_RXVLANERR] +=
- IRDMA_STATS_DELTA(gather_stats->rxvlanerr,
- last_gather_stats->rxvlanerr,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_IP4RXDISCARD] +=
- IRDMA_STATS_DELTA(gather_stats->ip4rxdiscard,
- last_gather_stats->ip4rxdiscard,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_IP4RXTRUNC] +=
- IRDMA_STATS_DELTA(gather_stats->ip4rxtrunc,
- last_gather_stats->ip4rxtrunc,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE] +=
- IRDMA_STATS_DELTA(gather_stats->ip4txnoroute,
- last_gather_stats->ip4txnoroute,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_IP6RXDISCARD] +=
- IRDMA_STATS_DELTA(gather_stats->ip6rxdiscard,
- last_gather_stats->ip6rxdiscard,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_IP6RXTRUNC] +=
- IRDMA_STATS_DELTA(gather_stats->ip6rxtrunc,
- last_gather_stats->ip6rxtrunc,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE] +=
- IRDMA_STATS_DELTA(gather_stats->ip6txnoroute,
- last_gather_stats->ip6txnoroute,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_TCPRTXSEG] +=
- IRDMA_STATS_DELTA(gather_stats->tcprtxseg,
- last_gather_stats->tcprtxseg,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_TCPRXOPTERR] +=
- IRDMA_STATS_DELTA(gather_stats->tcprxopterr,
- last_gather_stats->tcprxopterr,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR] +=
- IRDMA_STATS_DELTA(gather_stats->tcprxprotoerr,
- last_gather_stats->tcprxprotoerr,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED] +=
- IRDMA_STATS_DELTA(gather_stats->rxrpcnphandled,
- last_gather_stats->rxrpcnphandled,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED] +=
- IRDMA_STATS_DELTA(gather_stats->rxrpcnpignored,
- last_gather_stats->rxrpcnpignored,
- IRDMA_MAX_STATS_32);
- stats_val[IRDMA_HW_STAT_INDEX_TXNPCNPSENT] +=
- IRDMA_STATS_DELTA(gather_stats->txnpcnpsent,
- last_gather_stats->txnpcnpsent,
- IRDMA_MAX_STATS_32);
+#define irdma_update_stat(index, var, size) \
+ stats_val[IRDMA_STAT(index)] += \
+ IRDMA_STATS_DELTA(gather_stats->var, \
+ last_gather_stats->var, \
+ IRDMA_MAX_STATS_##size)
+
+ irdma_update_stat(RXVLANERR, rxvlanerr, 32);
+ irdma_update_stat(IP4RXDISCARD, ip4rxdiscard, 32);
+ irdma_update_stat(IP4RXTRUNC, ip4rxtrunc, 32);
+ irdma_update_stat(IP4TXNOROUTE, ip4txnoroute, 32);
+ irdma_update_stat(IP6RXDISCARD, ip6rxdiscard, 32);
+ irdma_update_stat(IP6RXTRUNC, ip6rxtrunc, 32);
+ irdma_update_stat(IP6TXNOROUTE, ip6txnoroute, 32);
+ irdma_update_stat(TCPRTXSEG, tcprtxseg, 32);
+ irdma_update_stat(TCPRXOPTERR, tcprxopterr, 32);
+ irdma_update_stat(TCPRXPROTOERR, tcprxprotoerr, 32);
+ irdma_update_stat(RXRPCNPHANDLED, rxrpcnphandled, 32);
+ irdma_update_stat(RXRPCNPIGNORED, rxrpcnpignored, 32);
+ irdma_update_stat(TXNPCNPSENT, txnpcnpsent, 32);
+
stats_val = hw_stats->stats_val_64;
- stats_val[IRDMA_HW_STAT_INDEX_IP4RXOCTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4rxocts,
- last_gather_stats->ip4rxocts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP4RXPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4rxpkts,
- last_gather_stats->ip4rxpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP4RXFRAGS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4txfrag,
- last_gather_stats->ip4txfrag,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4rxmcpkts,
- last_gather_stats->ip4rxmcpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP4TXOCTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4txocts,
- last_gather_stats->ip4txocts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP4TXPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4txpkts,
- last_gather_stats->ip4txpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP4TXFRAGS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4txfrag,
- last_gather_stats->ip4txfrag,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip4txmcpkts,
- last_gather_stats->ip4txmcpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6RXOCTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6rxocts,
- last_gather_stats->ip6rxocts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6RXPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6rxpkts,
- last_gather_stats->ip6rxpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6RXFRAGS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6txfrags,
- last_gather_stats->ip6txfrags,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6rxmcpkts,
- last_gather_stats->ip6rxmcpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6TXOCTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6txocts,
- last_gather_stats->ip6txocts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6TXPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6txpkts,
- last_gather_stats->ip6txpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6TXFRAGS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6txfrags,
- last_gather_stats->ip6txfrags,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->ip6txmcpkts,
- last_gather_stats->ip6txmcpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_TCPRXSEGS] +=
- IRDMA_STATS_DELTA(gather_stats->tcprxsegs,
- last_gather_stats->tcprxsegs,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_TCPTXSEG] +=
- IRDMA_STATS_DELTA(gather_stats->tcptxsegs,
- last_gather_stats->tcptxsegs,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMARXRDS] +=
- IRDMA_STATS_DELTA(gather_stats->rdmarxrds,
- last_gather_stats->rdmarxrds,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMARXSNDS] +=
- IRDMA_STATS_DELTA(gather_stats->rdmarxsnds,
- last_gather_stats->rdmarxsnds,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMARXWRS] +=
- IRDMA_STATS_DELTA(gather_stats->rdmarxwrs,
- last_gather_stats->rdmarxwrs,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMATXRDS] +=
- IRDMA_STATS_DELTA(gather_stats->rdmatxrds,
- last_gather_stats->rdmatxrds,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMATXSNDS] +=
- IRDMA_STATS_DELTA(gather_stats->rdmatxsnds,
- last_gather_stats->rdmatxsnds,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMATXWRS] +=
- IRDMA_STATS_DELTA(gather_stats->rdmatxwrs,
- last_gather_stats->rdmatxwrs,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMAVBND] +=
- IRDMA_STATS_DELTA(gather_stats->rdmavbn,
- last_gather_stats->rdmavbn,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RDMAVINV] +=
- IRDMA_STATS_DELTA(gather_stats->rdmavinv,
- last_gather_stats->rdmavinv,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_UDPRXPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->udprxpkts,
- last_gather_stats->udprxpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_UDPTXPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->udptxpkts,
- last_gather_stats->udptxpkts,
- IRDMA_MAX_STATS_48);
- stats_val[IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS] +=
- IRDMA_STATS_DELTA(gather_stats->rxnpecnmrkpkts,
- last_gather_stats->rxnpecnmrkpkts,
- IRDMA_MAX_STATS_48);
+
+ irdma_update_stat(IP4RXOCTS, ip4rxocts, 48);
+ irdma_update_stat(IP4RXPKTS, ip4rxpkts, 48);
+ irdma_update_stat(IP4RXFRAGS, ip4rxfrags, 48);
+ irdma_update_stat(IP4RXMCPKTS, ip4rxmcpkts, 48);
+ irdma_update_stat(IP4TXOCTS, ip4txocts, 48);
+ irdma_update_stat(IP4TXPKTS, ip4txpkts, 48);
+ irdma_update_stat(IP4TXFRAGS, ip4txfrag, 48);
+ irdma_update_stat(IP4TXMCPKTS, ip4txmcpkts, 48);
+ irdma_update_stat(IP6RXOCTS, ip6rxocts, 48);
+ irdma_update_stat(IP6RXPKTS, ip6rxpkts, 48);
+ irdma_update_stat(IP6RXFRAGS, ip6rxfrags, 48);
+ irdma_update_stat(IP6RXMCPKTS, ip6rxmcpkts, 48);
+ irdma_update_stat(IP6TXOCTS, ip6txocts, 48);
+ irdma_update_stat(IP6TXPKTS, ip6txpkts, 48);
+ irdma_update_stat(IP6TXFRAGS, ip6txfrags, 48);
+ irdma_update_stat(IP6TXMCPKTS, ip6txmcpkts, 48);
+ irdma_update_stat(TCPRXSEGS, tcprxsegs, 48);
+ irdma_update_stat(TCPTXSEG, tcptxsegs, 48);
+ irdma_update_stat(RDMARXRDS, rdmarxrds, 48);
+ irdma_update_stat(RDMARXSNDS, rdmarxsnds, 48);
+ irdma_update_stat(RDMARXWRS, rdmarxwrs, 48);
+ irdma_update_stat(RDMATXRDS, rdmatxrds, 48);
+ irdma_update_stat(RDMATXSNDS, rdmatxsnds, 48);
+ irdma_update_stat(RDMATXWRS, rdmatxwrs, 48);
+ irdma_update_stat(RDMAVBND, rdmavbn, 48);
+ irdma_update_stat(RDMAVINV, rdmavinv, 48);
+ irdma_update_stat(UDPRXPKTS, udprxpkts, 48);
+ irdma_update_stat(UDPTXPKTS, udptxpkts, 48);
+ irdma_update_stat(RXNPECNMARKEDPKTS, rxnpecnmrkpkts, 48);
+
memcpy(last_gather_stats, gather_stats, sizeof(*last_gather_stats));
}

2021-06-08 16:20:05

by Shiraz Saleem

[permalink] [raw]
Subject: RE: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?

> Subject: Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
>
> On Mon, 2021-06-07 at 22:40 +0000, Saleem, Shiraz wrote:
> > > Subject: Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
> > >
> > > On Mon, 2021-06-07 at 14:54 +0000, Saleem, Shiraz wrote:
> > > > > Subject: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
> > > > >
> > > > > There are some odd mismatches in field and access index.
> > > > > These may be simple cut/paste typos.
> > > > >
> > > > > Are these intentional?
> > > >
> > > > No. Accidental. Likely cut/copy mistake. I will send a fix. Thanks
> > > > Joe!
> > >
> > > Reason is I was refactoring what I thought was rather templated and
> > > overly verbose code.
> > >
> > > Here's a possible patch (with probable corrections to these index
> > > typos):
> >
> > Looks reasonable to me. Wondering if irdma_update_stats should also
> > use your IRDMA_STAT macro.
>
> Probably, and it could really a macro or two of its own.
>
> And it looks like that block has it's own copy/paste defects.
>
> Maybe:
> ---
> drivers/infiniband/hw/irdma/ctrl.c | 219 +++++++++----------------------------
> 1 file changed, 51 insertions(+), 168 deletions(-)
>
> diff --git a/drivers/infiniband/hw/irdma/ctrl.c b/drivers/infiniband/hw/irdma/ctrl.c
> index 5aa112067bce8..90c6f82ea0c8d 100644
> --- a/drivers/infiniband/hw/irdma/ctrl.c
> +++ b/drivers/infiniband/hw/irdma/ctrl.c
> @@ -5484,174 +5484,57 @@ void irdma_update_stats(struct irdma_dev_hw_stats
> *hw_stats, {
> u64 *stats_val = hw_stats->stats_val_32;
>
> - stats_val[IRDMA_HW_STAT_INDEX_RXVLANERR] +=
> - IRDMA_STATS_DELTA(gather_stats->rxvlanerr,
> - last_gather_stats->rxvlanerr,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4RXDISCARD] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4rxdiscard,
> - last_gather_stats->ip4rxdiscard,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4RXTRUNC] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4rxtrunc,
> - last_gather_stats->ip4rxtrunc,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4TXNOROUTE] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4txnoroute,
> - last_gather_stats->ip4txnoroute,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6RXDISCARD] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6rxdiscard,
> - last_gather_stats->ip6rxdiscard,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6RXTRUNC] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6rxtrunc,
> - last_gather_stats->ip6rxtrunc,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6TXNOROUTE] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6txnoroute,
> - last_gather_stats->ip6txnoroute,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_TCPRTXSEG] +=
> - IRDMA_STATS_DELTA(gather_stats->tcprtxseg,
> - last_gather_stats->tcprtxseg,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_TCPRXOPTERR] +=
> - IRDMA_STATS_DELTA(gather_stats->tcprxopterr,
> - last_gather_stats->tcprxopterr,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_TCPRXPROTOERR] +=
> - IRDMA_STATS_DELTA(gather_stats->tcprxprotoerr,
> - last_gather_stats->tcprxprotoerr,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_RXRPCNPHANDLED] +=
> - IRDMA_STATS_DELTA(gather_stats->rxrpcnphandled,
> - last_gather_stats->rxrpcnphandled,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_RXRPCNPIGNORED] +=
> - IRDMA_STATS_DELTA(gather_stats->rxrpcnpignored,
> - last_gather_stats->rxrpcnpignored,
> - IRDMA_MAX_STATS_32);
> - stats_val[IRDMA_HW_STAT_INDEX_TXNPCNPSENT] +=
> - IRDMA_STATS_DELTA(gather_stats->txnpcnpsent,
> - last_gather_stats->txnpcnpsent,
> - IRDMA_MAX_STATS_32);
> +#define irdma_update_stat(index, var, size) \

Maybe var --> name. Other than that looks good.


> + stats_val[IRDMA_STAT(index)] += \
> + IRDMA_STATS_DELTA(gather_stats->var, \
> + last_gather_stats->var, \
> + IRDMA_MAX_STATS_##size)
> +
> + irdma_update_stat(RXVLANERR, rxvlanerr, 32);
> + irdma_update_stat(IP4RXDISCARD, ip4rxdiscard, 32);
> + irdma_update_stat(IP4RXTRUNC, ip4rxtrunc, 32);
> + irdma_update_stat(IP4TXNOROUTE, ip4txnoroute, 32);
> + irdma_update_stat(IP6RXDISCARD, ip6rxdiscard, 32);
> + irdma_update_stat(IP6RXTRUNC, ip6rxtrunc, 32);
> + irdma_update_stat(IP6TXNOROUTE, ip6txnoroute, 32);
> + irdma_update_stat(TCPRTXSEG, tcprtxseg, 32);
> + irdma_update_stat(TCPRXOPTERR, tcprxopterr, 32);
> + irdma_update_stat(TCPRXPROTOERR, tcprxprotoerr, 32);
> + irdma_update_stat(RXRPCNPHANDLED, rxrpcnphandled, 32);
> + irdma_update_stat(RXRPCNPIGNORED, rxrpcnpignored, 32);
> + irdma_update_stat(TXNPCNPSENT, txnpcnpsent, 32);
> +
> stats_val = hw_stats->stats_val_64;
> - stats_val[IRDMA_HW_STAT_INDEX_IP4RXOCTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4rxocts,
> - last_gather_stats->ip4rxocts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4RXPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4rxpkts,
> - last_gather_stats->ip4rxpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4RXFRAGS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4txfrag,
> - last_gather_stats->ip4txfrag,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4RXMCPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4rxmcpkts,
> - last_gather_stats->ip4rxmcpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4TXOCTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4txocts,
> - last_gather_stats->ip4txocts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4TXPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4txpkts,
> - last_gather_stats->ip4txpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4TXFRAGS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4txfrag,
> - last_gather_stats->ip4txfrag,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP4TXMCPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip4txmcpkts,
> - last_gather_stats->ip4txmcpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6RXOCTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6rxocts,
> - last_gather_stats->ip6rxocts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6RXPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6rxpkts,
> - last_gather_stats->ip6rxpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6RXFRAGS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6txfrags,
> - last_gather_stats->ip6txfrags,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6RXMCPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6rxmcpkts,
> - last_gather_stats->ip6rxmcpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6TXOCTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6txocts,
> - last_gather_stats->ip6txocts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6TXPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6txpkts,
> - last_gather_stats->ip6txpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6TXFRAGS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6txfrags,
> - last_gather_stats->ip6txfrags,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_IP6TXMCPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->ip6txmcpkts,
> - last_gather_stats->ip6txmcpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_TCPRXSEGS] +=
> - IRDMA_STATS_DELTA(gather_stats->tcprxsegs,
> - last_gather_stats->tcprxsegs,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_TCPTXSEG] +=
> - IRDMA_STATS_DELTA(gather_stats->tcptxsegs,
> - last_gather_stats->tcptxsegs,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMARXRDS] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmarxrds,
> - last_gather_stats->rdmarxrds,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMARXSNDS] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmarxsnds,
> - last_gather_stats->rdmarxsnds,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMARXWRS] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmarxwrs,
> - last_gather_stats->rdmarxwrs,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMATXRDS] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmatxrds,
> - last_gather_stats->rdmatxrds,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMATXSNDS] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmatxsnds,
> - last_gather_stats->rdmatxsnds,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMATXWRS] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmatxwrs,
> - last_gather_stats->rdmatxwrs,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMAVBND] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmavbn,
> - last_gather_stats->rdmavbn,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RDMAVINV] +=
> - IRDMA_STATS_DELTA(gather_stats->rdmavinv,
> - last_gather_stats->rdmavinv,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_UDPRXPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->udprxpkts,
> - last_gather_stats->udprxpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_UDPTXPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->udptxpkts,
> - last_gather_stats->udptxpkts,
> - IRDMA_MAX_STATS_48);
> - stats_val[IRDMA_HW_STAT_INDEX_RXNPECNMARKEDPKTS] +=
> - IRDMA_STATS_DELTA(gather_stats->rxnpecnmrkpkts,
> - last_gather_stats->rxnpecnmrkpkts,
> - IRDMA_MAX_STATS_48);
> +
> + irdma_update_stat(IP4RXOCTS, ip4rxocts, 48);
> + irdma_update_stat(IP4RXPKTS, ip4rxpkts, 48);
> + irdma_update_stat(IP4RXFRAGS, ip4rxfrags, 48);
> + irdma_update_stat(IP4RXMCPKTS, ip4rxmcpkts, 48);
> + irdma_update_stat(IP4TXOCTS, ip4txocts, 48);
> + irdma_update_stat(IP4TXPKTS, ip4txpkts, 48);
> + irdma_update_stat(IP4TXFRAGS, ip4txfrag, 48);
> + irdma_update_stat(IP4TXMCPKTS, ip4txmcpkts, 48);
> + irdma_update_stat(IP6RXOCTS, ip6rxocts, 48);
> + irdma_update_stat(IP6RXPKTS, ip6rxpkts, 48);
> + irdma_update_stat(IP6RXFRAGS, ip6rxfrags, 48);
> + irdma_update_stat(IP6RXMCPKTS, ip6rxmcpkts, 48);
> + irdma_update_stat(IP6TXOCTS, ip6txocts, 48);
> + irdma_update_stat(IP6TXPKTS, ip6txpkts, 48);
> + irdma_update_stat(IP6TXFRAGS, ip6txfrags, 48);
> + irdma_update_stat(IP6TXMCPKTS, ip6txmcpkts, 48);
> + irdma_update_stat(TCPRXSEGS, tcprxsegs, 48);
> + irdma_update_stat(TCPTXSEG, tcptxsegs, 48);
> + irdma_update_stat(RDMARXRDS, rdmarxrds, 48);
> + irdma_update_stat(RDMARXSNDS, rdmarxsnds, 48);
> + irdma_update_stat(RDMARXWRS, rdmarxwrs, 48);
> + irdma_update_stat(RDMATXRDS, rdmatxrds, 48);
> + irdma_update_stat(RDMATXSNDS, rdmatxsnds, 48);
> + irdma_update_stat(RDMATXWRS, rdmatxwrs, 48);
> + irdma_update_stat(RDMAVBND, rdmavbn, 48);
> + irdma_update_stat(RDMAVINV, rdmavinv, 48);
> + irdma_update_stat(UDPRXPKTS, udprxpkts, 48);
> + irdma_update_stat(UDPTXPKTS, udptxpkts, 48);
> + irdma_update_stat(RXNPECNMARKEDPKTS, rxnpecnmrkpkts, 48);
> +
> memcpy(last_gather_stats, gather_stats, sizeof(*last_gather_stats)); }

2021-06-08 16:28:04

by Joe Perches

[permalink] [raw]
Subject: Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?

On Tue, 2021-06-08 at 16:18 +0000, Saleem, Shiraz wrote:
> > > Looks reasonable to me. Wondering if irdma_update_stats should
> > > also use your IRDMA_STAT macro.
> >
> > Probably, and it could really a macro or two of its own.
> >
> > And it looks like that block has it's own copy/paste defects.
> >
> > Maybe:
> > ---
[]
> > +#define irdma_update_stat(index, var, size) \
>
> Maybe var --> name. Other than that looks good.

Just a suggestion. Do what you want with it.

And also the field name/MACRO mismatches are a bit odd at best.

I'd rename one or the other to match.

> + irdma_update_stat(IP4TXFRAGS, ip4txfrag, 48);
[]
> + irdma_update_stat(TCPTXSEG, tcptxsegs, 48);
[]
> + irdma_update_stat(RDMAVBND, rdmavbn, 48);