mt7612u: cold boot, dwell-cadence polling and software-CCMP cost, measured on the first bench unit - #445
mt7612u: cold boot, dwell-cadence polling and software-CCMP cost, measured on the first bench unit#445josephnef wants to merge 4 commits into
Conversation
…sured on the first bench unit Three open items the MediaTek backend carried for want of an MT7612U on the bench, worked on a Comfast CF-922AC, plus the tooling each one needed: - Cold boot. tests/adapter_doctor_cold.sh takes DOCTOR_DUT_PID and DOCTOR_MT7612U_FW_DIR, and build/doctor a --mt7612u-fw-dir flag (it reads no environment by design; this backend's firmware is not embedded). Three true-VBUS-cold reps with mt76x2u blacklisted and a verified flood: HEALTHY on each, 4200 / 2585 / 4175 frames in the 8 s smoke. - Does polling the channel timers at dwell cadence disturb the 1 Hz PHY tick's gain tracking (#433 §1)? rxdemo gains DEVOURER_RX_BUSY_MS, a vendor-neutral arm/wait/read poller emitting rx.busy, and DeviceConfig mt7612u.phy_tick (DEVOURER_MT7612U_PHY_TICK=0) as the measurement-only control arm. Four arms x 2 reps x 30 s against a 700 fps MCS7 flooder: no measurable cost, ~80% busy read throughout. The no-tick control does not collapse at that load, so the regime the tick's benchmark is about (~3000 fps peer) was not reached; no injector on this bench airs that fast, and the subtree guide says so. - What software CCMP costs (#425): tests/ccmp_cost_bench.sh times the harness's OpenSSL AES-128-CCM call — 1.51 us per 1500-byte frame on the bench host, against 2.4 ms per frame on this transport's send path. Recorded in docs/mt7612u-ap-mode.md; GTK rekey, not throughput, is the case for hardware keys. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
PR Summary by QodoAdd MT7612U cold-boot, dwell polling, and CCMP benchmarks
AI Description
Diagram
High-Level Assessment
Files changed (14)
|
Code Review by Qodo
1.
|
…tract, the cold wrapper waits for the DUT's PID, the CCMP bench times the whole call - DEVOURER_RX_BUSY_MS: parsed with strtoull and capped so the microsecond window cannot wrap; refused alongside DEVOURER_RX_SWEEP / _HOP_CHANNELS (those retune from the main thread, and the busy window is a single-control-thread contract); the first arm waits for bring-up's first frame instead of racing Init(); the dwell sleep is remaining-duration. - adapter_doctor_cold.sh: with DOCTOR_DUT_PID set, wait until sysfs idProduct IS that PID - a ZeroCD part enumerates under its installer-disk id first - and fail the run on timeout; a doctor rc above 2 is "did not run", fatal, never folded into a HEALTHY aggregate. - ccmp_cost_bench: each timed call is the harness's ccm() whole, fresh context included, encrypt and decrypt separately. Re-measured: 1.52 / 1.54 us per 1500-byte frame - the lifecycle is not where the time goes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Review addressed (b59b4f6), re-validated on the unit:
|
Stacked on #444 (merge that first; this rebases to its own commit).
What
The bench work the first lab MT7612U (Comfast CF-922AC, INVENTORY slot #17) made possible, with the tooling each item needed:
docs/mt7612u.mdopen item):tests/adapter_doctor_cold.shgainsDOCTOR_DUT_PID/DOCTOR_MT7612U_FW_DIR, andbuild/doctora--mt7612u-fw-dirflag (the doctor reads no environment; this backend's firmware is not embedded). 3/3 true-VBUS-cold reps HEALTHY, 4200 / 2585 / 4175 frames in the 8 s smoke.DEVOURER_RX_BUSY_MS(vendor-neutral arm/wait/read, onerx.busyper window — the survey executor's dwell shape) and the backend a measurement-onlyDEVOURER_MT7612U_PHY_TICK=0control. Four arms × 2 reps × 30 s against a 700 fps MCS7 flooder: all inside run-to-run spread, ~80% busy read throughout. Limit stated in the subtree guide: the no-tick control does not collapse at 700 fps, so the ~3000 fps regime the tick's benchmark is about was not reached — nothing on this bench injects that fast.tests/ccmp_cost_bench.sh(headless) — 1.51 µs per 1500-byte frame vs 2.4 ms per frame on this transport's send path. Recorded indocs/mt7612u-ap-mode.md.Doc updates in
docs/adapter-doctor.md,tests/README.md, rootCLAUDE.md(the new demo knob) andsrc/mt7612u/CLAUDE.md.ctest69/69.🤖 Generated with Claude Code