From owner-svn-src-all@FreeBSD.ORG Tue Dec 2 23:02:58 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8CF6DE08; Tue, 2 Dec 2014 23:02:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 79BA5183; Tue, 2 Dec 2014 23:02:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sB2N2wKO002619; Tue, 2 Dec 2014 23:02:58 GMT (envelope-from jfv@FreeBSD.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sB2N2w9V002617; Tue, 2 Dec 2014 23:02:58 GMT (envelope-from jfv@FreeBSD.org) Message-Id: <201412022302.sB2N2w9V002617@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: jfv set sender to jfv@FreeBSD.org using -f From: Jack F Vogel Date: Tue, 2 Dec 2014 23:02:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r275431 - in head/sys/dev: e1000 ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Dec 2014 23:02:58 -0000 Author: jfv Date: Tue Dec 2 23:02:57 2014 New Revision: 275431 URL: https://svnweb.freebsd.org/changeset/base/275431 Log: Revert r275136, it was not approved, it was sloppy, if a feature like this is needed please resubmit for Intel's approval. Modified: head/sys/dev/e1000/if_igb.c head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Tue Dec 2 22:35:43 2014 (r275430) +++ head/sys/dev/e1000/if_igb.c Tue Dec 2 23:02:57 2014 (r275431) @@ -188,7 +188,6 @@ static char *igb_strings[] = { /********************************************************************* * Function prototypes *********************************************************************/ -static int igb_per_unit_num_queues(SYSCTL_HANDLER_ARGS); static int igb_probe(device_t); static int igb_attach(device_t); static int igb_detach(device_t); @@ -494,11 +493,6 @@ igb_attach(device_t dev) OID_AUTO, "nvm", CTLTYPE_INT|CTLFLAG_RW, adapter, 0, igb_sysctl_nvm_info, "I", "NVM Information"); - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "num_queues", CTLTYPE_INT | CTLFLAG_RD, - adapter, 0, igb_per_unit_num_queues, "I", "Number of Queues"); - igb_set_sysctl_value(adapter, "enable_aim", "Interrupt Moderation", &adapter->enable_aim, igb_enable_aim); @@ -2837,7 +2831,6 @@ igb_setup_msix(struct adapter *adapter) { device_t dev = adapter->dev; int bar, want, queues, msgs, maxqueues; - int n_queues; /* tuneable override */ if (igb_enable_msix == 0) @@ -2865,18 +2858,11 @@ igb_setup_msix(struct adapter *adapter) goto msi; } - n_queues = 0; - /* try more specific tunable, then global, then finally default to boot time tunable if set. */ - if (device_getenv_int(dev, "num_queues", &n_queues) != 0) { - device_printf(dev, "using specific tunable num_queues=%d", n_queues); - } else if (TUNABLE_INT_FETCH("hw.igb.num_queues", &n_queues) != 0) { - if (igb_num_queues != n_queues) { - device_printf(dev, "using global tunable hw.igb.num_queues=%d", n_queues); - igb_num_queues = n_queues; - } - } else { - n_queues = igb_num_queues; - } + queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus; + + /* Override via tuneable */ + if (igb_num_queues != 0) + queues = igb_num_queues; #ifdef RSS /* If we're doing RSS, clamp at the number of RSS buckets */ @@ -2884,12 +2870,6 @@ igb_setup_msix(struct adapter *adapter) queues = rss_getnumbuckets(); #endif - if (n_queues != 0) { - queues = n_queues; - } else { - /* Figure out a reasonable auto config value */ - queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus; - } /* Sanity check based on HW */ switch (adapter->hw.mac.type) { @@ -2912,17 +2892,10 @@ igb_setup_msix(struct adapter *adapter) maxqueues = 1; break; } - if (queues > maxqueues) { - device_printf(adapter->dev, "requested %d queues, but max for this adapter is %d\n", - queues, maxqueues); + + /* Final clamp on the actual hardware capability */ + if (queues > maxqueues) queues = maxqueues; - } else if (queues == 0) { - queues = 1; - } else if (queues < 0) { - device_printf(adapter->dev, "requested %d queues, but min for this adapter is %d\n", - queues, 1); - queues = 1; - } /* ** One vector (RX/TX pair) per queue @@ -6407,14 +6380,3 @@ igb_sysctl_eee(SYSCTL_HANDLER_ARGS) IGB_CORE_UNLOCK(adapter); return (0); } - -static int -igb_per_unit_num_queues(SYSCTL_HANDLER_ARGS) -{ - struct adapter *adapter; - - adapter = (struct adapter *) arg1; - - return sysctl_handle_int(oidp, &adapter->num_queues, 0, req); -} - Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Tue Dec 2 22:35:43 2014 (r275430) +++ head/sys/dev/ixgbe/ixgbe.c Tue Dec 2 23:02:57 2014 (r275431) @@ -103,7 +103,6 @@ static char *ixgbe_strings[] = { /********************************************************************* * Function prototypes *********************************************************************/ -static int ixgbe_per_unit_num_queues(SYSCTL_HANDLER_ARGS); static int ixgbe_probe(device_t); static int ixgbe_attach(device_t); static int ixgbe_detach(device_t); @@ -476,11 +475,6 @@ ixgbe_attach(device_t dev) SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "num_queues", CTLTYPE_INT | CTLFLAG_RD, - adapter, 0, ixgbe_per_unit_num_queues, "I", "Number of Queues"); - - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, "ts", CTLTYPE_INT | CTLFLAG_RW, adapter, 0, ixgbe_set_thermal_test, "I", "Thermal Test"); @@ -2522,7 +2516,6 @@ ixgbe_setup_msix(struct adapter *adapter { device_t dev = adapter->dev; int rid, want, queues, msgs; - int n_queues; /* Override by tuneable */ if (ixgbe_enable_msix == 0) @@ -2549,34 +2542,19 @@ ixgbe_setup_msix(struct adapter *adapter /* Figure out a reasonable auto config value */ queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus; + + /* Override based on tuneable */ + if (ixgbe_num_queues != 0) + queues = ixgbe_num_queues; + #ifdef RSS /* If we're doing RSS, clamp at the number of RSS buckets */ if (queues > rss_getnumbuckets()) queues = rss_getnumbuckets(); #endif - /* try more specific tunable, then global, then finally default to boot time tunable if set. */ - if (device_getenv_int(dev, "num_queues", &n_queues) != 0) { - device_printf(dev, "using specific tunable numqueues=%d", n_queues); - } else if (TUNABLE_INT_FETCH("hw.ix.num_queues", &n_queues) != 0) { - if (ixgbe_num_queues != n_queues) { - device_printf(dev, "using global tunable num_queues=%d", n_queues); - ixgbe_num_queues = n_queues; - } - } else { - n_queues = ixgbe_num_queues; - } - - if (n_queues < 0) { - device_printf(dev, "tunable < 0, resetting to default"); - n_queues = 0; - } - - if (n_queues != 0) - queues = n_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 one vector (RX/TX pair) per queue @@ -5964,15 +5942,6 @@ ixgbe_set_flowcntl(SYSCTL_HANDLER_ARGS) return error; } -static int -ixgbe_per_unit_num_queues(SYSCTL_HANDLER_ARGS) -{ - struct adapter *adapter; - - adapter = (struct adapter *) arg1; - - return sysctl_handle_int(oidp, &adapter->num_queues, 0, req); -} /* ** Control link advertise speed: