fix(perf): TRex ASTF needs --lro-disable on AWS ENA#104
Conversation
…LRO) Run 28514788453 (post-#103) proved the harness fix works — TRex now starts in ASTF mode, all DUTs start, tcp-echo binds on the real NIC — but exposed a deeper blocker: TRex ASTF requests hardware TCP_LRO, which AWS ENA does not support, so t-rex-64 dies at startup ('Requested RX offload TCP_LRO is not supported') and the ASTF RPC (:4501) never comes up -> clients get 'Failed to get server response'. UDP/STL never hit this (no LRO requested). - Extract trex_launch_cmd(mode) and pass --lro-disable (harmless for STL). - Readiness check: drop LOG_GROWING as a pass signal — a growing log does not mean TRex is alive; it masked the dead server for the whole run. Require PROCESS_FOUND or API_PORT (:4501). - Regression test asserts ASTF launch includes --astf + --lro-disable. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Synthetic Performance Results (run)Commit: ✅ synthetic UDP socket bound to 10.0.0.1:9000 (MAC: 02:00:00:00:00:01) Synthetic UDP Performance ResultsMeasures framework overhead: sync IPv4 Baseline
IPv6
IPv6 vs IPv4 Comparison (sync path)
IPv4 avg sync/async ratio: 0.9x, worst: 1.0x | IPv6 vs IPv4 worst ratio: 1.29x (OK)
|
Synthetic Performance Results — Graviton (run)Commit: ✅ synthetic UDP socket bound to 10.0.0.1:9000 (MAC: 02:00:00:00:00:01) Synthetic UDP Performance ResultsMeasures framework overhead: sync IPv4 Baseline
IPv6
IPv6 vs IPv4 Comparison (sync path)
IPv4 avg sync/async ratio: 0.9x, worst: 1.0x | IPv6 vs IPv4 worst ratio: 1.29x (OK)
|
[CI] Stage: DeployInfrastructure ready.
|
[CI] Stage: DeployInfrastructure ready.
|
[CI] Stage: SummaryAll tests PASSED. ARP seeding: kernel /proc/net/arp (automatic)
|
1 similar comment
[CI] Stage: SummaryAll tests PASSED. ARP seeding: kernel /proc/net/arp (automatic)
|
✅ Integration Tests Passed — Graviton (run)Branch: Test Results
Application Logs (last 20 lines)receiver-echo-server.log sender-echo-server.log sender-test-client.log |
✅ Integration Tests Passed (Run 28516698984)Branch: Test Results
Application Logs (last 20 lines)receiver-echo-server.log sender-echo-server.log sender-test-client.log receiver-test-client-iperf.log sender-test-client-iperf.log Full Application Logs (last 200 lines each)receiver-echo-server.logsender-echo-server.logsender-test-client.logreceiver-test-client-iperf.logsender-test-client-iperf.log
|
Follow-up to #103. That fix was validated by run 28514788453: TRex now runs in ASTF mode, all DUTs start, and
tcp-echobinds on the real NIC. It exposed the next blocker:TRex ASTF requests hardware TCP_LRO; AWS ENA doesn't support it, so
t-rex-64 -i --astfdies at startup and the ASTF RPC never comes up. (STL/UDP never hit this — no LRO requested, which is why UDP perf always worked.)Fix
trex_launch_cmd(mode)and pass--lro-disable(harmless no-op for STL).LOG_GROWING— a growing log doesn't mean TRex is alive, and it masked the dead server for the whole 30-min run. RequirePROCESS_FOUND/API_PORT (:4501).--astf+--lro-disable(catches this locally in <1s).Scripts-only,
bash -nclean, harness tests green. Merge → re-dispatch the TCP perf suite to get real numbers.🤖 Generated with Claude Code