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 <j...@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; _______________________________________________ svn-src-stable-10@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10 To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"