CTPIO Statistics

Onload User Guide (UG1586)

Document ID
UG1586
Release Date
2023-07-31
Revision
1.2 English

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.

Table 1. Per-adapter Statistics for CTPIO
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.

Table 2. Per-interface Statistics for CTPIO
Stats Description
ctpio_success Number of successful CTPIO transmit events.
ctpio_fallback

Number of instances when CTPIO push was rejected. This can occur because:

  • the VI legacy datapath is still busy
  • another CTPIO is in progress
  • VI is not enabled to use CTPIO
  • push request for illegal sized frame

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.