ixgbevf: Set the netdev number of Tx queues
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>
This commit is contained in:
parent
66eef59f22
commit
91e2b89b04
1 changed files with 7 additions and 0 deletions
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue