• Amit Cohen's avatar
    mlxsw: Add support of latency TLV · 49f5b769
    Amit Cohen authored
    
    
    The latency of each EMAD can be measured by firmware. The driver can get
    the measurement via latency TLV which can be added to each EMAD. This TLV
    is optional, when EMAD is sent with this TLV, the EMAD's response will
    include the TLV and the field 'latency_time' will contain the firmware
    measurement.
    
    This information can be processed using BPF program for example, to
    create a histogram and average of the latency per register. In addition,
    it is possible to measure the end-to-end latency, and then reduce firmware
    measurement, which will result in the latency of the software overhead.
    This information can be useful to improve the driver performance.
    
    Add support for latency TLV by default for all EMADs. First we planned to
    enable latency TLV per demand, using devlink-param. After some tests, we
    know that the usage of latency TLV does not impact the end-to-end latency,
    so it is OK to enable it by default.
    
    Note that similar to string TLV, the latency TLV is not supported in all
    firmware versions. Enable the usage of this TLV only after verifying it is
    supported by the current firmware version by querying the Management
    General Information Register (MGIR).
    Signed-off-by: default avatarDanielle Ratson <danieller@nvidia.com>
    Signed-off-by: default avatarAmit Cohen <amcohen@nvidia.com>
    Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Reviewed-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    49f5b769
core.c 96.4 KB