Skip to content

Per-chip ARQ capability matrix: ack_responder/retry caps flags, 8821AU responder root-cause, Kestrel retry H2C, 8814A carve-out audit #365

Description

@josephnef

Context

Hardware ARQ is a per-chip capability and the current coverage is uneven, partly measured and partly folklore-adjacent:

  • 8821AU as responder: bench-measured broken — an armed 8821AU never closed the loop (TX retries stayed pinned) while the 8814AU ACKs ~100% with the identical recipe.
  • 8814A die: retry knob inert — the vendor DATA_RETRY_LIMIT=0 carve-out is preserved; nobody knows if it hides a fw bug or is cargo cult.
  • Kestrel: retry is fw-levelDEVOURER_TX_RETRY_LIMIT is a no-op there.
  • Untested as responder: Kestrel 8852B/C, PCIe 8821CE, 8812CU/8822EU (the 8812EU is now heavily validated via ARQ end-to-end delivery bench: three-ledger harness; count spsc-fat pool-exhaustion drops #359).

Callers currently discover all of this in the field.

Steps

  1. [measure] Responder matrix. tests/ack_responder_check.sh across every owned die as responder against a J3 reporter TX; reconfirm the 8821AU failure; first data for Kestrel + PCIe. Output: one table.
  2. [build] Caps flags. AdapterCaps: ack_responder_ok + tx_retry_limit_ok, bench-derived truth tables doc-commented at the declaration (the AdapterCaps convention — the header is the source of truth), resolved at construction, carried in the adapter.caps event.
  3. [research] 8821AU responder root-cause. Per the match-chip-dispatched-source rule: diff the vendor 8821A-die branch for MSR/MACID/RCR handling vs the 8812 path before touching registers; fix if a recipe variant emerges, else document the exclusion in the caps table.
  4. [build] Kestrel retry knob. Port the mac_ax retry-limit H2C so DEVOURER_TX_RETRY_LIMIT means the same thing on AX; validate with a Kestrel TX arm + responder.
  5. [research] 8814A carve-out audit. Source archaeology for the vendor's DATA_RETRY_LIMIT=0 rationale, then a cautious bench enable (the die has known TX-wedge modes — watch rc=-7 patterns). Acceptable outcome: keep the carve-out, but documented as measured rather than inherited.

Acceptance

Matrix table in docs/scheduled-mac.md; caps flags shipped; 8821AU and 8814A entries backed by either a fix or a documented, bench-confirmed exclusion.

Refs: #359, docs/scheduled-mac.md, src/AdapterCaps.h conventions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions