Author: arybchik
Date: Wed Mar 25 10:32:49 2015
New Revision: 280526
URL: https://svnweb.freebsd.org/changeset/base/280526

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

Modified:
  stable/10/sys/dev/sfxge/sfxge_tx.c
  stable/10/sys/dev/sfxge/sfxge_tx.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/sfxge/sfxge_tx.c
==============================================================================
--- stable/10/sys/dev/sfxge/sfxge_tx.c  Wed Mar 25 10:31:43 2015        
(r280525)
+++ stable/10/sys/dev/sfxge/sfxge_tx.c  Wed Mar 25 10:32:49 2015        
(r280526)
@@ -1093,12 +1093,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;
                }
        }
@@ -1515,6 +1519,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: stable/10/sys/dev/sfxge/sfxge_tx.h
==============================================================================
--- stable/10/sys/dev/sfxge/sfxge_tx.h  Wed Mar 25 10:31:43 2015        
(r280525)
+++ stable/10/sys/dev/sfxge/sfxge_tx.h  Wed Mar 25 10:32:49 2015        
(r280526)
@@ -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
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to