mirror_ubuntu-kernels/drivers/net/ethernet/intel/i40evf
Mitch Williams 3f7e5c330e i40evf: relax and stagger init timing a bit
On some devices, in some systems, in some configurations, the VFs would
fail to initialize the first time you loaded the driver.

To correct this, increase the delay time for the init task slightly, and
wait longer before giving up.

If we enable VFs and load the VF driver in the same kernel as the PF
driver, we can totally overwhelm the PF driver with AQ requests because
all of the instances try to initialize at the same time.

To help alleviate this, stagger the initial scheduling of the init task
using the PCIe function as a multiplier. We mask off the function to
only three bits so no instance has to wait too long.

With these two changes, initializing 128 VFs on a single device goes
from four minutes to just a few seconds.

Change-ID: If3d8720c1c4e838ab36d8781d9ec295a62380936
Signed-off-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>
2015-10-16 05:00:17 -07:00
..
i40e_adminq_cmd.h i40e/i40evf: Add new link status defines 2015-10-13 23:15:35 -07:00
i40e_adminq.c i40e/i40evf: clean up some code 2015-10-08 16:19:55 -07:00
i40e_adminq.h i40e/i40evf: fix a potential type compare issue 2015-10-07 13:38:11 -07:00
i40e_alloc.h i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_common.c i40e/i40evf: Fix compile issue related to const string 2015-10-16 04:38:35 -07:00
i40e_devids.h i40e/i40evf: split device ids into a separate file 2015-10-13 23:37:13 -07:00
i40e_hmc.h i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40e_lan_hmc.h i40e/i40evf: Big endian fixes for handling HMC 2014-06-26 04:44:57 -07:00
i40e_osdep.h i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_prototype.h i40e/i40evf: Fix compile issue related to const string 2015-10-16 04:38:35 -07:00
i40e_register.h i40evf: Remove PF specific register definitions from the VF 2015-08-26 15:05:17 -07:00
i40e_status.h i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00
i40e_txrx.c drivers/net/intel: use napi_complete_done() 2015-10-16 04:33:46 -07:00
i40e_txrx.h i40e/i40evf: moderate interrupts differently 2015-10-16 04:50:38 -07:00
i40e_type.h i40e/i40evf: Refactor PHY structure and add phy_capabilities enum 2015-10-13 23:42:01 -07:00
i40e_virtchnl.h i40e/i40evf: Add WB_ON_ITR offload support 2015-10-15 02:03:29 -07:00
i40evf_ethtool.c i40e: use BIT and BIT_ULL macros 2015-07-23 05:33:55 -07:00
i40evf_main.c i40evf: relax and stagger init timing a bit 2015-10-16 05:00:17 -07:00
i40evf_virtchnl.c i40e/i40evf: Add WB_ON_ITR offload support 2015-10-15 02:03:29 -07:00
i40evf.h i40evf: relax and stagger init timing a bit 2015-10-16 05:00:17 -07:00
Makefile i40evf: Fix the headers and update copyright year. 2014-05-21 01:54:43 -07:00