Skip to content

Commit

Permalink
ixgbevf: Set the netdev number of Tx queues
Browse files Browse the repository at this point in the history
The driver was not setting the number of real Tx queues in the net_device
structure.  This caused some serious issues such as Tx hangs and extremely
poor performance with some usages of the driver.

The issue is best observed by running:

iperf -c <host> -P <n>

Where n is greater than one.  The greater the value of n the more likely
the problem is to show up.

Signed-off-by: Greg Rose <gregory.v.rose@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
  • Loading branch information
Greg Rose authored and Jeff Kirsher committed Oct 9, 2012
1 parent 66eef59 commit 91e2b89
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1747,6 +1747,7 @@ static int ixgbevf_alloc_queues(struct ixgbevf_adapter *adapter)
**/
static int ixgbevf_set_interrupt_capability(struct ixgbevf_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
int err = 0;
int vector, v_budget;

Expand Down Expand Up @@ -1775,6 +1776,12 @@ static int ixgbevf_set_interrupt_capability(struct ixgbevf_adapter *adapter)

ixgbevf_acquire_msix_vectors(adapter, v_budget);

err = netif_set_real_num_tx_queues(netdev, adapter->num_tx_queues);
if (err)
goto out;

err = netif_set_real_num_rx_queues(netdev, adapter->num_rx_queues);

out:
return err;
}
Expand Down

0 comments on commit 91e2b89

Please sign in to comment.