• Jesse Brandeburg's avatar
    i40e/i40evf: moderate interrupts differently · ac26fc13
    Jesse Brandeburg authored
    The XL710 hardware has a different interrupt moderation design
    that can support a limit of total interrupts per second per
    vector, in addition to the "number of interrupts per second"
    controls already established in the driver.  This combination
    of hardware features allows us to set very low default latency
    settings but minimize the total CPU utilization by not
    making too many interrupts, should the user desire.
    The current driver implementation is still enabling the dynamic
    moderation in the driver, and only using the rx/tx-usecs
    limit in ethtool to limit the interrupt rate per second, by default.
    The new code implemented in this patch
    2) adds init/use of the new "Interrupt Limit" register
    3) adds ethtool knob to control/report the limits above
    Usage is ethtool -C ethx rx-usecs-high <value> Where <value> is number
    of microseconds to create a rate of 1/N interrupts per second,
    regardless of rx-usecs or tx-usecs values. Since there is a credit based
    scheme in the hardware, the rx-usecs and tx-usecs can be configured for
    very low latency for short bursts, but once the credit runs out the
    refill rate on the credits is limited by rx-usecs-high.
    Change-ID: I3a1075d3296123b0f4f50623c779b027af5b188d
    Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
    Tested-by: default avatarAndrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>