Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Jun 2015 17:13:23 +0000 (UTC)
From:      Eric Joyner <erj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r284876 - stable/10/sys/dev/ixgbe
Message-ID:  <201506261713.t5QHDNUS053984@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: erj
Date: Fri Jun 26 17:13:23 2015
New Revision: 284876
URL: https://svnweb.freebsd.org/changeset/base/284876

Log:
  Limit the number of autoconfigured queues to 8.
  
  This limit was in a previous version of the driver, but it is being re-
  added to match the behavior of previous versions of 10. It prevents the
  driver from using too many MSI-X vectors on systems with a large number of
  logical CPU cores.
  
  Thanks to <jwd@slowblink.com> for bringing up this issue.
  
  Approved by:	jfv (mentor)

Modified:
  stable/10/sys/dev/ixgbe/if_ix.c

Modified: stable/10/sys/dev/ixgbe/if_ix.c
==============================================================================
--- stable/10/sys/dev/ixgbe/if_ix.c	Fri Jun 26 16:14:00 2015	(r284875)
+++ stable/10/sys/dev/ixgbe/if_ix.c	Fri Jun 26 17:13:23 2015	(r284876)
@@ -285,7 +285,8 @@ SYSCTL_INT(_hw_ix, OID_AUTO, enable_msix
  */
 static int ixgbe_num_queues = 0;
 SYSCTL_INT(_hw_ix, OID_AUTO, num_queues, CTLFLAG_RDTUN, &ixgbe_num_queues, 0,
-    "Number of queues to configure, 0 indicates autoconfigure");
+    "Number of queues to configure up to a maximum of 8; "
+    "0 indicates autoconfigure");
 
 /*
 ** Number of TX descriptors per ring,
@@ -548,7 +549,6 @@ ixgbe_attach(device_t dev)
         /* Check PCIE slot type/speed/width */
 	ixgbe_get_slot_info(hw);
 
-
 	/* Set an initial default flow control value */
 	adapter->fc = ixgbe_fc_full;
 
@@ -2328,6 +2328,9 @@ ixgbe_setup_msix(struct adapter *adapter
 
 	if (ixgbe_num_queues != 0)
 		queues = ixgbe_num_queues;
+	/* Set max queues to 8 when autoconfiguring */
+	else if ((ixgbe_num_queues == 0) && (queues > 8))
+		queues = 8;
 
 	/* reflect correct sysctl value */
 	ixgbe_num_queues = queues;



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