ehea: Remove num_tx_qps module option
The num_tx_qps module option allows a user to configure a different number of tx and rx queues. Now the networking stack is multiqueue aware it makes little sense just to enable the tx queues and not the rx queues so remove the option. v3: [cascardo] fixed conflict with get_stats change Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
222ca96b69
commit
723f28e49c
|
@ -58,7 +58,6 @@
|
||||||
#define EHEA_MIN_ENTRIES_QP 127
|
#define EHEA_MIN_ENTRIES_QP 127
|
||||||
|
|
||||||
#define EHEA_SMALL_QUEUES
|
#define EHEA_SMALL_QUEUES
|
||||||
#define EHEA_NUM_TX_QP 1
|
|
||||||
#define EHEA_LRO_MAX_AGGR 64
|
#define EHEA_LRO_MAX_AGGR 64
|
||||||
|
|
||||||
#ifdef EHEA_SMALL_QUEUES
|
#ifdef EHEA_SMALL_QUEUES
|
||||||
|
@ -460,8 +459,6 @@ struct ehea_port {
|
||||||
char int_aff_name[EHEA_IRQ_NAME_SIZE];
|
char int_aff_name[EHEA_IRQ_NAME_SIZE];
|
||||||
int allmulti; /* Indicates IFF_ALLMULTI state */
|
int allmulti; /* Indicates IFF_ALLMULTI state */
|
||||||
int promisc; /* Indicates IFF_PROMISC state */
|
int promisc; /* Indicates IFF_PROMISC state */
|
||||||
int num_tx_qps;
|
|
||||||
int num_add_tx_qps;
|
|
||||||
int num_mcs;
|
int num_mcs;
|
||||||
int resets;
|
int resets;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
|
@ -64,7 +64,6 @@ static int sq_entries = EHEA_DEF_ENTRIES_SQ;
|
||||||
static int use_mcs = 1;
|
static int use_mcs = 1;
|
||||||
static int use_lro;
|
static int use_lro;
|
||||||
static int lro_max_aggr = EHEA_LRO_MAX_AGGR;
|
static int lro_max_aggr = EHEA_LRO_MAX_AGGR;
|
||||||
static int num_tx_qps = EHEA_NUM_TX_QP;
|
|
||||||
static int prop_carrier_state;
|
static int prop_carrier_state;
|
||||||
|
|
||||||
module_param(msg_level, int, 0);
|
module_param(msg_level, int, 0);
|
||||||
|
@ -76,9 +75,7 @@ module_param(prop_carrier_state, int, 0);
|
||||||
module_param(use_mcs, int, 0);
|
module_param(use_mcs, int, 0);
|
||||||
module_param(use_lro, int, 0);
|
module_param(use_lro, int, 0);
|
||||||
module_param(lro_max_aggr, int, 0);
|
module_param(lro_max_aggr, int, 0);
|
||||||
module_param(num_tx_qps, int, 0);
|
|
||||||
|
|
||||||
MODULE_PARM_DESC(num_tx_qps, "Number of TX-QPS");
|
|
||||||
MODULE_PARM_DESC(msg_level, "msg_level");
|
MODULE_PARM_DESC(msg_level, "msg_level");
|
||||||
MODULE_PARM_DESC(prop_carrier_state, "Propagate carrier state of physical "
|
MODULE_PARM_DESC(prop_carrier_state, "Propagate carrier state of physical "
|
||||||
"port to stack. 1:yes, 0:no. Default = 0 ");
|
"port to stack. 1:yes, 0:no. Default = 0 ");
|
||||||
|
@ -174,7 +171,7 @@ static void ehea_update_firmware_handles(void)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
num_ports++;
|
num_ports++;
|
||||||
num_portres += port->num_def_qps + port->num_add_tx_qps;
|
num_portres += port->num_def_qps;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -200,9 +197,7 @@ static void ehea_update_firmware_handles(void)
|
||||||
(num_ports == 0))
|
(num_ports == 0))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
for (l = 0;
|
for (l = 0; l < port->num_def_qps; l++) {
|
||||||
l < port->num_def_qps + port->num_add_tx_qps;
|
|
||||||
l++) {
|
|
||||||
struct ehea_port_res *pr = &port->port_res[l];
|
struct ehea_port_res *pr = &port->port_res[l];
|
||||||
|
|
||||||
arr[i].adh = adapter->handle;
|
arr[i].adh = adapter->handle;
|
||||||
|
@ -340,7 +335,7 @@ static struct net_device_stats *ehea_get_stats(struct net_device *dev)
|
||||||
rx_bytes += port->port_res[i].rx_bytes;
|
rx_bytes += port->port_res[i].rx_bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
|
for (i = 0; i < port->num_def_qps; i++) {
|
||||||
tx_packets += port->port_res[i].tx_packets;
|
tx_packets += port->port_res[i].tx_packets;
|
||||||
tx_bytes += port->port_res[i].tx_bytes;
|
tx_bytes += port->port_res[i].tx_bytes;
|
||||||
}
|
}
|
||||||
|
@ -810,7 +805,7 @@ static void reset_sq_restart_flag(struct ehea_port *port)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
|
for (i = 0; i < port->num_def_qps; i++) {
|
||||||
struct ehea_port_res *pr = &port->port_res[i];
|
struct ehea_port_res *pr = &port->port_res[i];
|
||||||
pr->sq_restart_flag = 0;
|
pr->sq_restart_flag = 0;
|
||||||
}
|
}
|
||||||
|
@ -823,7 +818,7 @@ static void check_sqs(struct ehea_port *port)
|
||||||
int swqe_index;
|
int swqe_index;
|
||||||
int i, k;
|
int i, k;
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
|
for (i = 0; i < port->num_def_qps; i++) {
|
||||||
struct ehea_port_res *pr = &port->port_res[i];
|
struct ehea_port_res *pr = &port->port_res[i];
|
||||||
int ret;
|
int ret;
|
||||||
k = 0;
|
k = 0;
|
||||||
|
@ -1112,13 +1107,6 @@ int ehea_sense_port_attr(struct ehea_port *port)
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
|
|
||||||
port->num_tx_qps = num_tx_qps;
|
|
||||||
|
|
||||||
if (port->num_def_qps >= port->num_tx_qps)
|
|
||||||
port->num_add_tx_qps = 0;
|
|
||||||
else
|
|
||||||
port->num_add_tx_qps = port->num_tx_qps - port->num_def_qps;
|
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
out_free:
|
out_free:
|
||||||
if (ret || netif_msg_probe(port))
|
if (ret || netif_msg_probe(port))
|
||||||
|
@ -1359,7 +1347,7 @@ static int ehea_reg_interrupts(struct net_device *dev)
|
||||||
port->qp_eq->attr.ist1);
|
port->qp_eq->attr.ist1);
|
||||||
|
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
|
for (i = 0; i < port->num_def_qps; i++) {
|
||||||
pr = &port->port_res[i];
|
pr = &port->port_res[i];
|
||||||
snprintf(pr->int_send_name, EHEA_IRQ_NAME_SIZE - 1,
|
snprintf(pr->int_send_name, EHEA_IRQ_NAME_SIZE - 1,
|
||||||
"%s-queue%d", dev->name, i);
|
"%s-queue%d", dev->name, i);
|
||||||
|
@ -1402,7 +1390,7 @@ static void ehea_free_interrupts(struct net_device *dev)
|
||||||
|
|
||||||
/* send */
|
/* send */
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
|
for (i = 0; i < port->num_def_qps; i++) {
|
||||||
pr = &port->port_res[i];
|
pr = &port->port_res[i];
|
||||||
ibmebus_free_irq(pr->eq->attr.ist1, pr);
|
ibmebus_free_irq(pr->eq->attr.ist1, pr);
|
||||||
netif_info(port, intr, dev,
|
netif_info(port, intr, dev,
|
||||||
|
@ -2438,8 +2426,7 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ehea_port_res_setup(struct ehea_port *port, int def_qps,
|
static int ehea_port_res_setup(struct ehea_port *port, int def_qps)
|
||||||
int add_tx_qps)
|
|
||||||
{
|
{
|
||||||
int ret, i;
|
int ret, i;
|
||||||
struct port_res_cfg pr_cfg, pr_cfg_small_rx;
|
struct port_res_cfg pr_cfg, pr_cfg_small_rx;
|
||||||
|
@ -2472,7 +2459,7 @@ static int ehea_port_res_setup(struct ehea_port *port, int def_qps,
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_clean_pr;
|
goto out_clean_pr;
|
||||||
}
|
}
|
||||||
for (i = def_qps; i < def_qps + add_tx_qps; i++) {
|
for (i = def_qps; i < def_qps; i++) {
|
||||||
ret = ehea_init_port_res(port, &port->port_res[i],
|
ret = ehea_init_port_res(port, &port->port_res[i],
|
||||||
&pr_cfg_small_rx, i);
|
&pr_cfg_small_rx, i);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -2495,7 +2482,7 @@ static int ehea_clean_all_portres(struct ehea_port *port)
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++)
|
for (i = 0; i < port->num_def_qps; i++)
|
||||||
ret |= ehea_clean_portres(port, &port->port_res[i]);
|
ret |= ehea_clean_portres(port, &port->port_res[i]);
|
||||||
|
|
||||||
ret |= ehea_destroy_eq(port->qp_eq);
|
ret |= ehea_destroy_eq(port->qp_eq);
|
||||||
|
@ -2527,8 +2514,7 @@ static int ehea_up(struct net_device *dev)
|
||||||
if (port->state == EHEA_PORT_UP)
|
if (port->state == EHEA_PORT_UP)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ret = ehea_port_res_setup(port, port->num_def_qps,
|
ret = ehea_port_res_setup(port, port->num_def_qps);
|
||||||
port->num_add_tx_qps);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
netdev_err(dev, "port_res_failed\n");
|
netdev_err(dev, "port_res_failed\n");
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -2547,7 +2533,7 @@ static int ehea_up(struct net_device *dev)
|
||||||
goto out_clean_pr;
|
goto out_clean_pr;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
|
for (i = 0; i < port->num_def_qps; i++) {
|
||||||
ret = ehea_activate_qp(port->adapter, port->port_res[i].qp);
|
ret = ehea_activate_qp(port->adapter, port->port_res[i].qp);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
netdev_err(dev, "activate_qp failed\n");
|
netdev_err(dev, "activate_qp failed\n");
|
||||||
|
@ -2593,7 +2579,7 @@ static void port_napi_disable(struct ehea_port *port)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++)
|
for (i = 0; i < port->num_def_qps; i++)
|
||||||
napi_disable(&port->port_res[i].napi);
|
napi_disable(&port->port_res[i].napi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2601,7 +2587,7 @@ static void port_napi_enable(struct ehea_port *port)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++)
|
for (i = 0; i < port->num_def_qps; i++)
|
||||||
napi_enable(&port->port_res[i].napi);
|
napi_enable(&port->port_res[i].napi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2689,7 +2675,7 @@ static void ehea_flush_sq(struct ehea_port *port)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < port->num_def_qps + port->num_add_tx_qps; i++) {
|
for (i = 0; i < port->num_def_qps; i++) {
|
||||||
struct ehea_port_res *pr = &port->port_res[i];
|
struct ehea_port_res *pr = &port->port_res[i];
|
||||||
int swqe_max = pr->sq_skba_size - 2 - pr->swqe_ll_count;
|
int swqe_max = pr->sq_skba_size - 2 - pr->swqe_ll_count;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -2723,7 +2709,7 @@ int ehea_stop_qps(struct net_device *dev)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < (port->num_def_qps + port->num_add_tx_qps); i++) {
|
for (i = 0; i < (port->num_def_qps); i++) {
|
||||||
struct ehea_port_res *pr = &port->port_res[i];
|
struct ehea_port_res *pr = &port->port_res[i];
|
||||||
struct ehea_qp *qp = pr->qp;
|
struct ehea_qp *qp = pr->qp;
|
||||||
|
|
||||||
|
@ -2825,7 +2811,7 @@ int ehea_restart_qps(struct net_device *dev)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < (port->num_def_qps + port->num_add_tx_qps); i++) {
|
for (i = 0; i < (port->num_def_qps); i++) {
|
||||||
struct ehea_port_res *pr = &port->port_res[i];
|
struct ehea_port_res *pr = &port->port_res[i];
|
||||||
struct ehea_qp *qp = pr->qp;
|
struct ehea_qp *qp = pr->qp;
|
||||||
|
|
||||||
|
@ -3184,8 +3170,7 @@ struct ehea_port *ehea_setup_single_port(struct ehea_adapter *adapter,
|
||||||
goto out_free_mc_list;
|
goto out_free_mc_list;
|
||||||
|
|
||||||
netif_set_real_num_rx_queues(dev, port->num_def_qps);
|
netif_set_real_num_rx_queues(dev, port->num_def_qps);
|
||||||
netif_set_real_num_tx_queues(dev, port->num_def_qps +
|
netif_set_real_num_tx_queues(dev, port->num_def_qps);
|
||||||
port->num_add_tx_qps);
|
|
||||||
|
|
||||||
port_dev = ehea_register_port(port, dn);
|
port_dev = ehea_register_port(port, dn);
|
||||||
if (!port_dev)
|
if (!port_dev)
|
||||||
|
|
Loading…
Reference in New Issue