]> www.infradead.org Git - users/jedix/linux-maple.git/commit
i40evf: relax and stagger init timing a bit
authorMitch Williams <mitch.a.williams@intel.com>
Mon, 28 Sep 2015 18:12:42 +0000 (14:12 -0400)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 10 Mar 2016 16:32:55 +0000 (08:32 -0800)
commit0f42d38de062e656f39a101a2bfaa232289a0131
treeeaecc85f802c7c73e482044560e0c39d0d22d45a
parent531055e70b5265eb48b8d4e7cb56103cdec29c8f
i40evf: relax and stagger init timing a bit

Orabug: 22342532

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>
(cherry picked from commit 3f7e5c330e19da2ac822ea1d02b744a24497e61b)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40evf/i40evf.h
drivers/net/ethernet/intel/i40evf/i40evf_main.c