Revert r275136, it was not approved, it was sloppy, if a feature

like this is needed please resubmit for Intel's approval.
This commit is contained in:
Jack F Vogel 2014-12-02 23:02:57 +00:00
parent ccbdcd03f2
commit 4da1bbcda5
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=275431
2 changed files with 15 additions and 84 deletions

View File

@ -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);
}

View File

@ -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);
@ -474,11 +473,6 @@ ixgbe_attach(device_t dev)
OID_AUTO, "advertise_speed", CTLTYPE_INT | CTLFLAG_RW,
adapter, 0, ixgbe_set_advertise, "I", "Link Speed");
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,
@ -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: