• Jacob Keller's avatar
    i40e/i40evf: remove ULTRA latency mode · 0a2c7722
    Jacob Keller authored
    Since commit c56625d5 ("i40e/i40evf: change dynamic interrupt
    thresholds") a new higher latency ITR setting called I40E_ULTRA_LATENCY
    was added with a cryptic comment about how it was meant for adjusting Rx
    more aggressively when streaming small packets.
    
    This mode was attempting to calculate packets per second and then kick
    in when we have a huge number of small packets.
    
    Unfortunately, the ULTRA setting was kicking in for workloads it wasn't
    intended for including single-thread UDP_STREAM workloads.
    
    This wasn't caught for a variety of reasons. First, the ip_defrag
    routines were improved somewhat which makes the UDP_STREAM test still
    reasonable at 10GbE, even when dropped down to 8k interrupts a second.
    Additionally, some other obvious workloads appear to work fine, such
    as TCP_STREAM.
    
    The number 40k doesn't make sense for a number of reasons. First, we
    absolutely can do more than 40k packets per second. Second, we calculate
    the value inline in an integer, which sometimes can overflow resulting
    in using incorrect values.
    
    If we fix this overflow it makes it even more likely that we'll enter
    ULTRA mode which is the opposite of what we want.
    
    The ULTRA mode was added originally as a way to reduce CPU utilization
    during a small packet workload where we weren't keeping up anyways. It
    should never have been kicking in during these other workloads.
    
    Given the issues outlined above, let's remove the ULTRA latency mode. If
    necessary, a better solution to the CPU utilization issue for small
    packet workloads will be added in a future patch.
    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>
    0a2c7722
i40e_txrx.c 94.9 KB