Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d4fc9dc2 authored by Thadeu Lima de Souza Cascardo's avatar Thadeu Lima de Souza Cascardo Committed by David S. Miller
Browse files

cxgb4: set coalesce parameters on all queues



The coalesce parameters was set only on the first queue, which caused
interrupt rates to be larger on all the other queues.

This patch allows interrupt rates to be reduced for certain workloads
and colaesce parameters by 41%.

Signed-off-by: default avatarThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Cc: steved@us.ibm.com
Cc: toml@us.ibm.com
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent adbbf69d
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -1994,9 +1994,20 @@ static int set_coalesce(struct net_device *dev, struct ethtool_coalesce *c)
{
	const struct port_info *pi = netdev_priv(dev);
	struct adapter *adap = pi->adapter;

	return set_rxq_intr_params(adap, &adap->sge.ethrxq[pi->first_qset].rspq,
			c->rx_coalesce_usecs, c->rx_max_coalesced_frames);
	struct sge_rspq *q;
	int i;
	int r = 0;

	for (i = pi->first_qset; i < pi->first_qset + pi->nqsets; i++) {
		q = &adap->sge.ethrxq[i].rspq;
		r = set_rxq_intr_params(adap, q, c->rx_coalesce_usecs,
			c->rx_max_coalesced_frames);
		if (r) {
			dev_err(&dev->dev, "failed to set coalesce %d\n", r);
			break;
		}
	}
	return r;
}

static int get_coalesce(struct net_device *dev, struct ethtool_coalesce *c)