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

Commit 91e2b89b authored by Greg Rose's avatar Greg Rose Committed by Jeff Kirsher
Browse files

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: default avatarGreg Rose <gregory.v.rose@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
parent 66eef59f
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1747,6 +1747,7 @@ err_tx_ring_allocation:
 **/
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;
}