The adapter driver exposes CTPIO counters via ethtool.
# ethtool -S <interface> | grep ctpio
Counts in the following table are aggregated for all interfaces on the adapter.
Stats | Description |
---|---|
ctpio_vi_busy_fallback
|
When a CTPIO push occurs from a VI, but the VI DMA datapath is still busy with packets in flight or waiting to be sent. The packet is sent over the DMA datapath. |
ctpio_long_write_success
|
Host wrote excess data beyond 32-byte boundary after frame end, but the CTPIO send was successful. |
ctpio_missing_dbell_fail
|
When CTPIO push is not accompanied by a TX doorbell. |
ctpio_overflow_fail
|
When the host pushes packet bytes too fast and overflows the CTPIO buffer. |
ctpio_underflow_fail
|
When the host fails to push packet bytes fast enough to match the adapter port speed. The packet is truncated and data transmitted as a poisoned packet. |
ctpio_timeout_fail
|
When host fails to send all bytes to complete the packet to be sent by CTPIO before the VI inactivity timer expires. The packet is truncated and data transmitted as a poisoned packet. |
ctpio_noncontig_wr_fail
|
A non-sequential address (for packet data) is encountered during CTPIO, caused when packet data is sent over PCIe interface as out-of-order or with gaps. Packet is truncated and transmitted as a poisoned packet. |
ctpio_frm_clobber_fail
|
When a CTPIO push from one VI would have ‘clobbered’ a push already in progress by the same VI or another VI. One or both packets are sent over the DMA datapath - no packets are dropped. |
ctpio_invalid_wr_fail
|
If packet length is less than length advertised in the CTPIO header the CTPIO fails. Or packet write is not aligned to (or multiple of) 32-bytes, Packet maybe transmitted as a poisoned packet if sending has already started. Or erased if send has not already started. |
ctpio_vi_clobber_fallback
|
When a CTPIO collided with another already in progress. In-progress packets succeeds, other is sent over the DMA datapath. |
ctpio_unqualified_fallback
|
VI is not enabled to send using CTPIO or first write is not the packet header. Packet is discarded and sent over the DMA datapath. |
ctpio_runt_fallback
|
Length in header < 29 bytes. Packet is discarded and sent over the DMA datapath. |
Counts in the following table are per interface on the adapter.
Stats | Description |
---|---|
ctpio_success
|
Number of successful CTPIO transmit events. |
ctpio_fallback
|
Number of instances when CTPIO push was rejected. This can occur because:
Fallback events do not result in poison packets. Rejected packets will fallback to use the legacy DMA datapath path. |
ctpio_poison
|
When the packet send has started, if CTPIO has to abort this packet, a corrupt CRC is attached to the packet. A poisoned packet might be sent over the wire - depending on the mode. The packet will fallback to use the legacy DMA datapath. |
ctpio_erase
|
Before a packet send has started. Corrupt, undersized or poisoned packets are erased from the CTPIO datapath. Packet send will fallback to use the legacy DMA datapath. |