svn commit: r185159 - user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb

Kip Macy kmacy at FreeBSD.org
Fri Nov 21 16:24:23 PST 2008


Author: kmacy
Date: Sat Nov 22 00:24:23 2008
New Revision: 185159
URL: http://svn.freebsd.org/changeset/base/185159

Log:
  although it ends up sucking up substantially more cpu waking up the transmit thread
  gives slightly better peak throughput

Modified:
  user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c
  user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c

Modified: user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c
==============================================================================
--- user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c	Fri Nov 21 23:59:54 2008	(r185158)
+++ user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_multiq.c	Sat Nov 22 00:24:23 2008	(r185159)
@@ -89,6 +89,7 @@ __FBSDID("$FreeBSD$");
 extern int txq_fills;
 int multiq_tx_enable = 1;
 int coalesce_tx_enable = 0;
+int wakeup_tx_thread = 0;
 
 extern struct sysctl_oid_list sysctl__hw_cxgb_children;
 static int sleep_ticks = 1;
@@ -127,6 +128,9 @@ cxgb_pcpu_enqueue_packet_(struct sge_qse
 		txq->txq_drops++;
 		m_freem(m);
 	}
+	if (wakeup_tx_thread && ((txq->flags & TXQ_TRANSMITTING) == 0))
+		wakeup(qs);
+	
 	return (err);
 }
 

Modified: user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c
==============================================================================
--- user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c	Fri Nov 21 23:59:54 2008	(r185158)
+++ user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c	Sat Nov 22 00:24:23 2008	(r185159)
@@ -86,6 +86,7 @@ extern int nmbjumbo9;
 extern int nmbjumbo16;
 extern int multiq_tx_enable;
 extern int coalesce_tx_enable;
+extern int wakeup_tx_thread;
 
 #define USE_GTS 0
 
@@ -3377,6 +3378,10 @@ t3_add_attach_sysctls(adapter_t *sc)
 	    CTLFLAG_RW, &coalesce_tx_enable,
 	    0, "coalesce small packets in work requests - WARNING ALPHA");
 	SYSCTL_ADD_INT(ctx, children, OID_AUTO, 
+	    "wakeup_tx_thread",
+	    CTLFLAG_RW, &wakeup_tx_thread,
+	    0, "wakeup tx thread if no transmitter running");
+	SYSCTL_ADD_INT(ctx, children, OID_AUTO, 
 	    "cache_alloc",
 	    CTLFLAG_RD, &cxgb_cached_allocations,
 	    0, "#times a cluster was allocated from cache");


More information about the svn-src-user mailing list