• Jacob Keller's avatar
    i40e/i40evf: avoid dynamic ITR updates when polling or low packet rate · 742c9875
    Jacob Keller authored
    The dynamic ITR algorithm depends on a calculation of usecs which
    assumes that the interrupts have been firing constantly at the interrupt
    throttle rate. This is not guaranteed because we could have a low packet
    rate, or have been polling in software.
    
    We'll estimate whether this is the case by using jiffies to determine if
    we've been too long. If the time difference of jiffies is larger we are
    guaranteed to have an incorrect calculation. If the time difference of
    jiffies is smaller we might have been polling some but the difference
    shouldn't affect the calculation too much.
    
    This ensures that we don't get stuck in BULK latency during certain rare
    situations where we receive bursts of packets that force us into NAPI
    polling.
    Signed-off-by: default avatarJacob Keller <jacob.e.keller@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    742c9875
i40e_txrx.c 63.7 KB