Skip to content

Commit

Permalink
be2net: Fix non utilization of RX queues
Browse files Browse the repository at this point in the history
When non power of two MSIX vectors are given to driver, some RX queues
are not utilized. Program RSS table in such a way that all queues
are utilized.

Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Padmanabh Ratnakar authored and David S. Miller committed Nov 26, 2011
1 parent 65f8584 commit e9008ee
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions drivers/net/ethernet/emulex/benet/be_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2312,8 +2312,8 @@ static int be_close(struct net_device *netdev)
static int be_rx_queues_setup(struct be_adapter *adapter)
{
struct be_rx_obj *rxo;
int rc, i;
u8 rsstable[MAX_RSS_QS];
int rc, i, j;
u8 rsstable[128];

for_all_rx_queues(adapter, rxo, i) {
rc = be_cmd_rxq_create(adapter, &rxo->q, rxo->cq.id,
Expand All @@ -2325,11 +2325,15 @@ static int be_rx_queues_setup(struct be_adapter *adapter)
}

if (be_multi_rxq(adapter)) {
for_all_rss_queues(adapter, rxo, i)
rsstable[i] = rxo->rss_id;
for (j = 0; j < 128; j += adapter->num_rx_qs - 1) {
for_all_rss_queues(adapter, rxo, i) {
if ((j + i) >= 128)
break;
rsstable[j + i] = rxo->rss_id;
}
}
rc = be_cmd_rss_config(adapter, rsstable, 128);

rc = be_cmd_rss_config(adapter, rsstable,
adapter->num_rx_qs - 1);
if (rc)
return rc;
}
Expand Down

0 comments on commit e9008ee

Please sign in to comment.