svn commit: r308066 - head/sys/dev/cxgbe/common

Navdeep Parhar np at FreeBSD.org
Fri Oct 28 23:01:12 UTC 2016


Author: np
Date: Fri Oct 28 23:01:11 2016
New Revision: 308066
URL: https://svnweb.freebsd.org/changeset/base/308066

Log:
  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:
  head/sys/dev/cxgbe/common/t4_hw.c

Modified: head/sys/dev/cxgbe/common/t4_hw.c
==============================================================================
--- head/sys/dev/cxgbe/common/t4_hw.c	Fri Oct 28 20:23:38 2016	(r308065)
+++ head/sys/dev/cxgbe/common/t4_hw.c	Fri Oct 28 23:01:11 2016	(r308066)
@@ -5870,10 +5870,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);
@@ -5904,10 +5907,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-all mailing list