netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Decotigny <david.decotigny@google.com>
To: netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
	Ian Campbell <ian.campbell@citrix.com>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>,
	Jiri Pirko <jpirko@redhat.com>, Joe Perches <joe@perches.com>,
	Szymon Janc <szymon@janc.net.pl>, Mandeep Baines <msb@google.com>,
	David Decotigny <david.decotigny@google.com>
Subject: [PATCH net v3 6/9] forcedeth: Improve stats counters
Date: Fri,  4 Nov 2011 18:53:30 -0700	[thread overview]
Message-ID: <64785e32eaf317a78b0fc0bd6d63dcbcfc64d464.1320457247.git.david.decotigny@google.com> (raw)
In-Reply-To: <cover.1320457247.git.david.decotigny@google.com>
In-Reply-To: <cover.1320457247.git.david.decotigny@google.com>

From: Mandeep Baines <msb@google.com>

Rx byte count was off; instead use the hardware's count.  Tx packet
count was counting pre-TSO packets; instead count on-the-wire packets.
Report hardware dropped frame count as rx_fifo_errors.

- The count of transmitted packets reported by the forcedeth driver
  reports pre-TSO (TCP Segmentation Offload) packet counts and not the
  count of the number of packets sent on the wire. This change fixes
  the forcedeth driver to report the correct count. Fixed the code by
  copying the count stored in the NIC H/W to the value reported by the
  driver.

- Count rx_drop_frame errors as rx_fifo_errors:
  We see a lot of rx_drop_frame errors if we disable the rx bottom-halves
  for too long.  Normally, rx_fifo_errors would be counted in this case.
  The rx_drop_frame error count is private to forcedeth and is not
  reported by ifconfig or sysfs.  The rx_fifo_errors count is currently
  unused in the forcedeth driver.  It is reported by ifconfig as overruns.
  This change reports rx_drop_frame errors as rx_fifo_errors.



Signed-off-by: David Decotigny <david.decotigny@google.com>
---
 drivers/net/ethernet/nvidia/forcedeth.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ethernet/nvidia/forcedeth.c b/drivers/net/ethernet/nvidia/forcedeth.c
index 38d8391..b26e7db 100644
--- a/drivers/net/ethernet/nvidia/forcedeth.c
+++ b/drivers/net/ethernet/nvidia/forcedeth.c
@@ -1687,6 +1687,7 @@ static void nv_get_hw_stats(struct net_device *dev)
 		np->estats.tx_pause += readl(base + NvRegTxPause);
 		np->estats.rx_pause += readl(base + NvRegRxPause);
 		np->estats.rx_drop_frame += readl(base + NvRegRxDropFrame);
+		np->estats.rx_errors_total += np->estats.rx_drop_frame;
 	}
 
 	if (np->driver_data & DEV_HAS_STATISTICS_V3) {
@@ -1711,11 +1712,14 @@ static struct net_device_stats *nv_get_stats(struct net_device *dev)
 		nv_get_hw_stats(dev);
 
 		/* copy to net_device stats */
+		dev->stats.tx_packets = np->estats.tx_packets;
+		dev->stats.rx_bytes = np->estats.rx_bytes;
 		dev->stats.tx_bytes = np->estats.tx_bytes;
 		dev->stats.tx_fifo_errors = np->estats.tx_fifo_errors;
 		dev->stats.tx_carrier_errors = np->estats.tx_carrier_errors;
 		dev->stats.rx_crc_errors = np->estats.rx_crc_errors;
 		dev->stats.rx_over_errors = np->estats.rx_over_errors;
+		dev->stats.rx_fifo_errors = np->estats.rx_drop_frame;
 		dev->stats.rx_errors = np->estats.rx_errors_total;
 		dev->stats.tx_errors = np->estats.tx_errors_total;
 	}
-- 
1.7.3.1

  parent reply	other threads:[~2011-11-05  1:53 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-05  1:53 [PATCH net v3 0/9] forcedeth: minor fixes for stats, rmmod, sparse David Decotigny
2011-11-05  1:53 ` [PATCH net v3 1/9] forcedeth: Add messages to indicate using MSI or MSI-X David Decotigny
2011-11-05  1:53 ` [PATCH net v3 2/9] forcedeth: Acknowledge only interrupts that are being processed David Decotigny
2011-11-05  1:53 ` [PATCH net v3 3/9] forcedeth: allow to silence tx_timeout debug messages David Decotigny
2011-11-05  1:53 ` [PATCH net v3 4/9] forcedeth: expose module parameters in /sys/module David Decotigny
2011-11-05  1:53 ` [PATCH net v3 5/9] forcedeth: remove unneeded stats updates David Decotigny
2011-11-05  1:53 ` David Decotigny [this message]
2011-11-05  1:53 ` [PATCH net v3 7/9] forcedeth: new ethtool stat "tx_timeout" to account for tx_timeouts David Decotigny
2011-11-05  1:53 ` [PATCH net v3 8/9] forcedeth: 64-bit stats David Decotigny
2011-11-05  7:28   ` Eric Dumazet
2011-11-05 16:34     ` David Decotigny
2011-11-05  1:53 ` [PATCH net v3 9/9] forcedeth: fix a few sparse warnings (variable shadowing) David Decotigny
2011-11-05  2:27 ` [PATCH net v3 0/9] forcedeth: minor fixes for stats, rmmod, sparse David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=64785e32eaf317a78b0fc0bd6d63dcbcfc64d464.1320457247.git.david.decotigny@google.com \
    --to=david.decotigny@google.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=ian.campbell@citrix.com \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=joe@perches.com \
    --cc=jpirko@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=msb@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=szymon@janc.net.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).