• S
    i40e/i40evf: Detect and recover hung queue scenario · 07d44190
    Sudheer Mogilappagari 提交于
    In VFs, there is a known issue which can cause writebacks
    to not occur when interrupts are disabled and there are
    less than 4 descriptors resulting in TX timeout. Timeout
    can also occur due to lost interrupt.
    
    The current implementation for detecting and recovering
    from hung queues in the PF is problematic because it actually
    actively encourages lost interrupts.  By triggering a SW
    interrupt, interrupts are forced on.  If we are already in
    napi_poll and an interrupt fires, napi_poll will not be
    rescheduled and the interrupt is effectively lost; thereby
    potentially *causing* hung queues.
    
    This patch checks whether packets are being processed between
    every watchdog cycle and determine potential hung queue and
    fires triggers SW interrupt only for that particular queue.
    Signed-off-by: NSudheer Mogilappagari <sudheer.mogilappagari@intel.com>
    Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
    07d44190
i40evf_main.c 86.9 KB