linux/drivers/net/ethernet/intel
Jacob Keller 1b48437028 i40e: make use of i40e_reset_all_vfs when initializing new VFs
When allocating a large number of VFs, the driver previously used
i40e_reset_vf in a sequence. Just as when performing a normal reset,
this accumulates a large amount of delay for handling all of the VFs in
sequence. This delay is mainly due to a hardware requirement to wait
after initiating a reset on the VF.

We recently added a new function, i40e_reset_all_vfs() which can be used
to amortize the delay time, by first triggering all VF resets, then
waiting once, and finally cleaning up and allocating the VFs. This is
almost as good as truly running the resets in parallel.

In order to avoid sending a spurious reset message to a client
interface, we have a check to see whether we've assigned
pf->num_alloc_vfs yet. This was originally intended as a way to
distinguish the "initialization" case from the regular reset case.

Unfortunately, this means that we can't directly use i40e_reset_all_vfs
yet. Lets avoid this check of pf->num_alloc_vfs by replacing it with
a proper VSI state bit which we can use instead. This makes the
intention much clearer and allows us to re-use the i40e_reset_all_vfs
function directly.

Change-ID: I694279b37eb6b5a91b6670182d0c15d10244fd6e
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Reviewed-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-04-30 04:05:20 -07:00
..
e1000 e1000: Omit private ndo_get_stats function 2017-04-20 16:18:45 -07:00
e1000e e1000e: fix timing for 82579 Gigabit Ethernet controller 2017-04-20 16:32:44 -07:00
fm10k fm10k: do not enqueue mailbox when host not ready 2017-04-05 22:47:31 -07:00
i40e i40e: make use of i40e_reset_all_vfs when initializing new VFs 2017-04-30 04:05:20 -07:00
i40evf i40e: remove I40E_FLAG_IN_NETPOLL entirely 2017-04-19 17:40:27 -07:00
igb igb: Enable reading of wake up packet 2017-04-20 16:32:45 -07:00
igbvf igbvf: Use net_device_stats from struct net_device 2017-04-20 16:32:45 -07:00
ixgb ixgb: Omit private ndo_get_stats function 2017-04-20 16:18:45 -07:00
ixgbe ixgbe: Check for RSS key before setting value 2017-04-29 20:01:04 -07:00
ixgbevf ixgbevf: Check for RSS key before setting value 2017-04-29 20:01:04 -07:00
e100.c drivers: net: generalize napi_complete_done() 2017-01-30 15:10:42 -05:00
Kconfig i40e: Drop FCoE code from core driver files 2017-03-27 16:47:43 -07:00
Makefile