Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Feb 2015 12:10:24 +0000 (UTC)
From:      Andrew Rybchenko <arybchik@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r278255 - head/sys/dev/sfxge
Message-ID:  <201502051210.t15CAOTL087026@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: arybchik
Date: Thu Feb  5 12:10:23 2015
New Revision: 278255
URL: https://svnweb.freebsd.org/changeset/base/278255

Log:
  sfxge: Add statistics for partially dropped TSO packets
  
  Sponsored by:   Solarflare Communications, Inc.
  Approved by:    gnn (mentor)

Modified:
  head/sys/dev/sfxge/sfxge_tx.c
  head/sys/dev/sfxge/sfxge_tx.h

Modified: head/sys/dev/sfxge/sfxge_tx.c
==============================================================================
--- head/sys/dev/sfxge/sfxge_tx.c	Thu Feb  5 12:08:25 2015	(r278254)
+++ head/sys/dev/sfxge/sfxge_tx.c	Thu Feb  5 12:10:23 2015	(r278255)
@@ -1094,12 +1094,16 @@ sfxge_tx_queue_tso(struct sfxge_txq *txq
 			 * roll back the work we have done.
 			 */
 			if (txq->n_pend_desc >
-			    SFXGE_TSO_MAX_DESC - (1 + SFXGE_TX_MAPPING_MAX_SEG))
+			    SFXGE_TSO_MAX_DESC - (1 + SFXGE_TX_MAPPING_MAX_SEG)) {
+				txq->tso_pdrop_too_many++;
 				break;
+			}
 			next_id = (id + 1) & txq->ptr_mask;
 			if (__predict_false(tso_start_new_packet(txq, &tso,
-								 next_id)))
+								 next_id))) {
+				txq->tso_pdrop_no_rsrc++;
 				break;
+			}
 			id = next_id;
 		}
 	}
@@ -1516,6 +1520,8 @@ static const struct {
 	SFXGE_TX_STAT(tso_bursts, tso_bursts),
 	SFXGE_TX_STAT(tso_packets, tso_packets),
 	SFXGE_TX_STAT(tso_long_headers, tso_long_headers),
+	SFXGE_TX_STAT(tso_pdrop_too_many, tso_pdrop_too_many),
+	SFXGE_TX_STAT(tso_pdrop_no_rsrc, tso_pdrop_no_rsrc),
 	SFXGE_TX_STAT(tx_collapses, collapses),
 	SFXGE_TX_STAT(tx_drops, drops),
 	SFXGE_TX_STAT(tx_get_overflow, get_overflow),

Modified: head/sys/dev/sfxge/sfxge_tx.h
==============================================================================
--- head/sys/dev/sfxge/sfxge_tx.h	Thu Feb  5 12:08:25 2015	(r278254)
+++ head/sys/dev/sfxge/sfxge_tx.h	Thu Feb  5 12:10:23 2015	(r278255)
@@ -201,6 +201,8 @@ struct sfxge_txq {
 	unsigned long			get_non_tcp_overflow;
 	unsigned long			put_overflow;
 	unsigned long			netdown_drops;
+	unsigned long			tso_pdrop_too_many;
+	unsigned long			tso_pdrop_no_rsrc;
 
 	/* The following fields change more often, and are used mostly
 	 * on the completion path



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201502051210.t15CAOTL087026>