svn commit: r309580 - in stable: 10/sys/dev/cxgbe/common 11/sys/dev/cxgbe/common

John Baldwin jhb at FreeBSD.org
Mon Dec 5 23:55:55 UTC 2016


Author: jhb
Date: Mon Dec  5 23:55:53 2016
New Revision: 309580
URL: https://svnweb.freebsd.org/changeset/base/309580

Log:
  MFC 308066: cxgbe(4): Accurate statistics for all chip settings.
  
  There are 4 independent knobs in T5+ chips to include or exclude PAUSE
  frames from the "total frames" and "multicast frames" counters in either
  direction.  This change lets the driver deal with any combination of
  these settings.

Modified:
  stable/11/sys/dev/cxgbe/common/t4_hw.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/sys/dev/cxgbe/common/t4_hw.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/sys/dev/cxgbe/common/t4_hw.c
==============================================================================
--- stable/11/sys/dev/cxgbe/common/t4_hw.c	Mon Dec  5 23:46:21 2016	(r309579)
+++ stable/11/sys/dev/cxgbe/common/t4_hw.c	Mon Dec  5 23:55:53 2016	(r309580)
@@ -5879,10 +5879,13 @@ void t4_get_port_stats(struct adapter *a
 	p->tx_ppp6		= GET_STAT(TX_PORT_PPP6);
 	p->tx_ppp7		= GET_STAT(TX_PORT_PPP7);
 
-	if (stat_ctl & F_COUNTPAUSESTATTX) {
-		p->tx_frames -= p->tx_pause;
-		p->tx_octets -= p->tx_pause * 64;
-		p->tx_mcast_frames -= p->tx_pause;
+	if (chip_id(adap) >= CHELSIO_T5) {
+		if (stat_ctl & F_COUNTPAUSESTATTX) {
+			p->tx_frames -= p->tx_pause;
+			p->tx_octets -= p->tx_pause * 64;
+		}
+		if (stat_ctl & F_COUNTPAUSEMCTX)
+			p->tx_mcast_frames -= p->tx_pause;
 	}
 
 	p->rx_pause		= GET_STAT(RX_PORT_PAUSE);
@@ -5913,10 +5916,13 @@ void t4_get_port_stats(struct adapter *a
 	p->rx_ppp6		= GET_STAT(RX_PORT_PPP6);
 	p->rx_ppp7		= GET_STAT(RX_PORT_PPP7);
 
-	if (stat_ctl & F_COUNTPAUSESTATRX) {
-		p->rx_frames -= p->rx_pause;
-		p->rx_octets -= p->rx_pause * 64;
-		p->rx_mcast_frames -= p->rx_pause;
+	if (chip_id(adap) >= CHELSIO_T5) {
+		if (stat_ctl & F_COUNTPAUSESTATRX) {
+			p->rx_frames -= p->rx_pause;
+			p->rx_octets -= p->rx_pause * 64;
+		}
+		if (stat_ctl & F_COUNTPAUSEMCRX)
+			p->rx_mcast_frames -= p->rx_pause;
 	}
 
 	p->rx_ovflow0 = (bgmap & 1) ? GET_STAT_COM(RX_BG_0_MAC_DROP_FRAME) : 0;


More information about the svn-src-stable-11 mailing list