svn commit: r323069 - in head/sys/dev/cxgbe: . tom

Navdeep Parhar np at FreeBSD.org
Thu Aug 31 20:33:24 UTC 2017


Author: np
Date: Thu Aug 31 20:33:22 2017
New Revision: 323069
URL: https://svnweb.freebsd.org/changeset/base/323069

Log:
  cxgbe/t4_tom: Add a knob to select the congestion control algorigthm
  used by the TOE hardware for fully offloaded connections.  The knob
  affects new connections only.
  
  MFC after:	2 weeks
  Sponsored by:	Chelsio Communications

Modified:
  head/sys/dev/cxgbe/offload.h
  head/sys/dev/cxgbe/t4_main.c
  head/sys/dev/cxgbe/tom/t4_connect.c
  head/sys/dev/cxgbe/tom/t4_listen.c

Modified: head/sys/dev/cxgbe/offload.h
==============================================================================
--- head/sys/dev/cxgbe/offload.h	Thu Aug 31 20:16:28 2017	(r323068)
+++ head/sys/dev/cxgbe/offload.h	Thu Aug 31 20:33:22 2017	(r323069)
@@ -144,6 +144,7 @@ struct uld_info {
 };
 
 struct tom_tunables {
+	int cong_algorithm;
 	int sndbuf;
 	int ddp;
 	int rx_coalesce;

Modified: head/sys/dev/cxgbe/t4_main.c
==============================================================================
--- head/sys/dev/cxgbe/t4_main.c	Thu Aug 31 20:16:28 2017	(r323068)
+++ head/sys/dev/cxgbe/t4_main.c	Thu Aug 31 20:33:22 2017	(r323069)
@@ -5416,6 +5416,12 @@ t4_sysctls(struct adapter *sc)
 		    NULL, "TOE parameters");
 		children = SYSCTL_CHILDREN(oid);
 
+		sc->tt.cong_algorithm = -1;
+		SYSCTL_ADD_INT(ctx, children, OID_AUTO, "cong_algorithm",
+		    CTLFLAG_RW, &sc->tt.cong_algorithm, 0, "congestion control "
+		    "(-1 = default, 0 = reno, 1 = tahoe, 2 = newreno, "
+		    "3 = highspeed)");
+
 		sc->tt.sndbuf = 256 * 1024;
 		SYSCTL_ADD_INT(ctx, children, OID_AUTO, "sndbuf", CTLFLAG_RW,
 		    &sc->tt.sndbuf, 0, "max hardware send buffer size");

Modified: head/sys/dev/cxgbe/tom/t4_connect.c
==============================================================================
--- head/sys/dev/cxgbe/tom/t4_connect.c	Thu Aug 31 20:16:28 2017	(r323068)
+++ head/sys/dev/cxgbe/tom/t4_connect.c	Thu Aug 31 20:33:22 2017	(r323069)
@@ -259,6 +259,9 @@ calc_opt2a(struct socket *so, struct toepcb *toep)
 	if (sc->tt.rx_coalesce)
 		opt2 |= V_RX_COALESCE(M_RX_COALESCE);
 
+	if (sc->tt.cong_algorithm != -1)
+		opt2 |= V_CONG_CNTRL(sc->tt.cong_algorithm & M_CONG_CNTRL);
+
 #ifdef USE_DDP_RX_FLOW_CONTROL
 	if (toep->ulp_mode == ULP_MODE_TCPDDP)
 		opt2 |= F_RX_FC_VALID | F_RX_FC_DDP;

Modified: head/sys/dev/cxgbe/tom/t4_listen.c
==============================================================================
--- head/sys/dev/cxgbe/tom/t4_listen.c	Thu Aug 31 20:16:28 2017	(r323068)
+++ head/sys/dev/cxgbe/tom/t4_listen.c	Thu Aug 31 20:33:22 2017	(r323069)
@@ -1047,6 +1047,9 @@ calc_opt2p(struct adapter *sc, struct port_info *pi, i
 	if (sc->tt.rx_coalesce)
 		opt2 |= V_RX_COALESCE(M_RX_COALESCE);
 
+	if (sc->tt.cong_algorithm != -1)
+		opt2 |= V_CONG_CNTRL(sc->tt.cong_algorithm & M_CONG_CNTRL);
+
 #ifdef USE_DDP_RX_FLOW_CONTROL
 	if (ulp_mode == ULP_MODE_TCPDDP)
 		opt2 |= F_RX_FC_VALID | F_RX_FC_DDP;


More information about the svn-src-head mailing list