• Mitch Williams's avatar
    i40evf: relax and stagger init timing a bit · 3f7e5c33
    Mitch Williams authored
    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: default avatarMitch Williams <mitch.a.williams@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    3f7e5c33
i40evf_main.c 71.3 KB