• Muhammad Husaini Zulkifli's avatar
    igc: Add TransmissionOverrun counter · d3750076
    Muhammad Husaini Zulkifli authored
    Add TransmissionOverrun as per defined by IEEE 802.1Q Bridges.
    TransmissionOverrun counter shall be incremented if the implementation
    detects that a frame from a given queue is still being transmitted by
    the MAC when that gate-close event for that queue occurs.
    
    This counter is utilised by the Certification conformance test to
    inform the user application whether any packets are currently being
    transmitted on a particular queue during a gate-close event.
    
    Intel Discrete I225/I226 have a mechanism to not transmit a packets if
    the gate open time is insufficient for the packet transmission by setting
    the Strict_End bit. Thus, it is expected for this counter to be always
    zero at this moment.
    
    Inspired from enetc_taprio_stats() and enetc_taprio_queue_stats(), now
    driver also report the tx_overruns counter per traffic class.
    
    User can get this counter by using below command:
    1) tc -s qdisc show dev <interface> root
    2) tc -s class show dev <interface>
    
    Test Result (Before):
    class mq :1 root
     Sent 1289 bytes 20 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
    class mq :2 root
     Sent 124 bytes 2 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
    class mq :3 root
     Sent 46028 bytes 86 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
    class mq :4 root
     Sent 2596 bytes 14 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
    
    Test Result (After):
    class taprio 100:1 root
     Sent 8491 bytes 38 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
     Transmit overruns: 0
    class taprio 100:2 root
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
     Transmit overruns: 0
    class taprio 100:3 root
     Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
     backlog 0b 0p requeues 0
     Transmit overruns: 0
    class taprio 100:4 root
     Sent 994 bytes 11 pkt (dropped 0, overlimits 0 requeues 1)
     backlog 0b 0p requeues 1
     Transmit overruns: 0
    Signed-off-by: default avatarMuhammad Husaini Zulkifli <muhammad.husaini.zulkifli@intel.com>
    Reviewed-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Tested-by: default avatarNaama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
    Link: https://lore.kernel.org/r/20230714201428.1718097-1-anthony.l.nguyen@intel.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    d3750076
igc_main.c 186 KB