linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
@ 2021-06-06  1:10 Joe Perches
  2021-06-07 14:54 ` Saleem, Shiraz
  0 siblings, 1 reply; 7+ messages in thread
From: Joe Perches @ 2021-06-06  1:10 UTC (permalink / raw)
  To: Mustafa Ismail
  Cc: Shiraz Saleem, Doug Ledford, Jason Gunthorpe, linux-rdma, LKML

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);



^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
  2021-06-06  1:10 irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ? Joe Perches
@ 2021-06-07 14:54 ` Saleem, Shiraz
  2021-06-07 15:07   ` Joe Perches
  0 siblings, 1 reply; 7+ messages in thread
From: Saleem, Shiraz @ 2021-06-07 14:54 UTC (permalink / raw)
  To: Joe Perches, Ismail, Mustafa
  Cc: Doug Ledford, Jason Gunthorpe, linux-rdma, LKML

> 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);
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
  2021-06-07 14:54 ` Saleem, Shiraz
@ 2021-06-07 15:07   ` Joe Perches
  2021-06-07 22:40     ` Saleem, Shiraz
  0 siblings, 1 reply; 7+ messages in thread
From: Joe Perches @ 2021-06-07 15:07 UTC (permalink / raw)
  To: Saleem, Shiraz, Ismail, Mustafa
  Cc: Doug Ledford, Jason Gunthorpe, linux-rdma, LKML

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)


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
  2021-06-07 15:07   ` Joe Perches
@ 2021-06-07 22:40     ` Saleem, Shiraz
  2021-06-07 23:37       ` Joe Perches
  0 siblings, 1 reply; 7+ messages in thread
From: Saleem, Shiraz @ 2021-06-07 22:40 UTC (permalink / raw)
  To: Joe Perches, Ismail, Mustafa
  Cc: Doug Ledford, Jason Gunthorpe, linux-rdma, LKML

> 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)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
  2021-06-07 22:40     ` Saleem, Shiraz
@ 2021-06-07 23:37       ` Joe Perches
  2021-06-08 16:18         ` Saleem, Shiraz
  0 siblings, 1 reply; 7+ messages in thread
From: Joe Perches @ 2021-06-07 23:37 UTC (permalink / raw)
  To: Saleem, Shiraz, Ismail, Mustafa
  Cc: Doug Ledford, Jason Gunthorpe, linux-rdma, LKML

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));
 }


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* RE: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
  2021-06-07 23:37       ` Joe Perches
@ 2021-06-08 16:18         ` Saleem, Shiraz
  2021-06-08 16:25           ` Joe Perches
  0 siblings, 1 reply; 7+ messages in thread
From: Saleem, Shiraz @ 2021-06-08 16:18 UTC (permalink / raw)
  To: Joe Perches, Ismail, Mustafa
  Cc: Doug Ledford, Jason Gunthorpe, linux-rdma, LKML

> 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));  }


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ?
  2021-06-08 16:18         ` Saleem, Shiraz
@ 2021-06-08 16:25           ` Joe Perches
  0 siblings, 0 replies; 7+ messages in thread
From: Joe Perches @ 2021-06-08 16:25 UTC (permalink / raw)
  To: Saleem, Shiraz, Ismail, Mustafa
  Cc: Doug Ledford, Jason Gunthorpe, linux-rdma, LKML

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);



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-06-08 16:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-06  1:10 irdma: utils.c typos in irdma_cqp_gather_stats_gen1 ? Joe Perches
2021-06-07 14:54 ` Saleem, Shiraz
2021-06-07 15:07   ` Joe Perches
2021-06-07 22:40     ` Saleem, Shiraz
2021-06-07 23:37       ` Joe Perches
2021-06-08 16:18         ` Saleem, Shiraz
2021-06-08 16:25           ` Joe Perches

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).