linux_dsm_epyc7002/drivers/net/ethernet/intel
Brett Creeley 12bb018c53 ice: Refactor VF reset
Currently VF VSI are being reset twice during a PFR or greater. This is
causing reset, specifically resetting all VFs, to take too long. This is
causing various issues with VF drivers not being able to gracefully
handle the VF reset timeout. Fix this by refactoring how VF reset is
handled for the case mentioned previously and for the VFR/VFLR case.

The refactor was done by doing the following:

1. Removing the call to ice_vsi_rebuild_by_type for
   ICE_VSI_VF VSI, which was causing the initial VSI rebuild.

2. Adding functions for pre/post VSI rebuild functions that can be called
   in both the reset all VFs case and reset individual VF case.

3. Adding VSI rebuild functions that are specific for the reset all VFs
   case and adding functions that are specific for the reset individual
   VF case.

4. Calling the pre-rebuild function, then the specific VSI rebuild
   function based on the reset type, and then calling the post-rebuild
   function to handle VF resets.

This patch series makes some assumptions about how VSI are handling by
FW during reset:

1. During a PFR or greater all VSI in FW will be cleared.
2. During a VFR/VFLR the VSI rebuild responsibility is in the hands of
   the PF software.
3. There is code in the ice_reset_all_vfs() case to amortize operations
   if possible. This was left intact.
4. PF software should not be replaying VSI based filters that were added
   other than host configured, PF software configured, or the VF's
   default/LAA MAC. This is the VF drivers job after it has been reset.

Signed-off-by: Brett Creeley <brett.creeley@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2020-05-28 16:24:02 -07:00
..
e1000 e1000: Do not perform reset in reset_task if we are already down 2020-05-21 16:18:42 -07:00
e1000e e1000e: disable s0ix entry and exit flows for ME systems 2020-05-22 18:21:52 -07:00
fm10k net: fm10k: reject unsupported coalescing params 2020-03-12 11:32:36 -07:00
i40e i40e, xsk: Migrate to new MEM_TYPE_XSK_BUFF_POOL 2020-05-21 17:31:26 -07:00
iavf net: iavf: reject unsupported coalescing params 2020-03-12 11:32:36 -07:00
ice ice: Refactor VF reset 2020-05-28 16:24:02 -07:00
igb igb: Report speed and duplex as unknown when device is runtime suspended 2020-05-22 18:21:52 -07:00
igbvf net: igbvf: reject unsupported coalescing params 2020-03-12 11:32:36 -07:00
igc igc: Remove unused descriptor's flags 2020-05-22 18:21:52 -07:00
ixgb Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-22 15:15:05 -08:00
ixgbe ixgbe, xsk: Migrate to new MEM_TYPE_XSK_BUFF_POOL 2020-05-21 17:31:27 -07:00
ixgbevf ixgbevf: Add XDP frame size to VF driver 2020-05-14 21:21:56 -07:00
e100.c netdev: pass the stuck queue to the timeout handler 2019-12-12 21:38:57 -08:00
Kconfig ice: enable initial devlink support 2020-03-21 00:55:42 -07:00
Makefile igc: Add skeletal frame for Intel(R) 2.5G Ethernet Controller support 2018-10-17 12:14:54 -07:00