Skip to content

Follow-ups left open by the StopRxLoop-during-Init fix (#503) #504

Closed

Description

@josephnef

Left open when #503 (merged as 2c31471) landed. None blocks the fix.

  • src/IRadio.h: the StopRxLoop note names a "window" and what is "out of scope" instead of stating the contract. Proposed wording in the PR's review thread: a stop issued while Init() is still bringing the chip up is honoured (Init returns without starting its loop); a stop issued before Init() or before a standalone StartRxLoop() is stale and cleared by them, which includes a stop that lands between InitWrite() and a StartRxLoop() on another thread (DEVOURER_TX_WITH_RX=thread).
  • The g_devourer_should_stop check at the entry of every start_rx_loop is redundant with the loop's own stop predicate and uncommented. Either drop it or say why it is there.
  • Hardware coverage: the reproducer (Init on a thread, StopRxLoop at 100/400/1000/2500 ms, restart-after-stop, stale-stop-before-Init) passed 18/18 on 8822BU, 8812EU and 8832CU. Jaguar1, RTL8733B and MT7612U received the same guard but were reviewed by reading only; run the probe on them when they are on the bench.
  • The probe itself lives only in a session scratchpad. Promote it to tests/ (it is a third RX-lifecycle probe next to busy_window_probe.cpp / kestrel_tbtt_probe.cpp) so the matrix is reproducible.

Activity

  1. josephnef commented on Oct 29, 2026

    @josephnef
    CollaboratorAuthor

    Three of the four items are on branch pr503-followups (84a7458): the IRadio.h contract wording, the why-comment on the entry check in all six backends, and the probe promoted to tests/stop_during_init_probe.cpp + tests/stop_during_init.sh (target StopDuringInitProbe). Re-run through the promoted script at that commit: 18/18 OK on 8822BU (ch6), 8812EU and 8832CU (ch36). Still open: running it on the 8812AU, RTL8733B and MT7612U, which are not on the bench.

  2. josephnef commented on Oct 29, 2026

    @josephnef
    CollaboratorAuthor

    Landed in #505 (27f3066), with the Qodo round folded in: private mktemp log dir, pid-tracked cleanup, initstop now requires Init to still be running at the stop and a working receiver afterwards, README references the IRadio.h contract, and every documented command uses sudo env. Remaining item: run tests/stop_during_init.sh on the 8812AU, RTL8733B and MT7612U when they are plugged.

  3. josephnef commented on Oct 29, 2026

    @josephnef
    CollaboratorAuthor

    The three remaining backends are plugged now and measured through tests/stop_during_init.sh (branch stop-during-init-mt7612u, which adds the FW_DIR knob the MT7612U needs and reports a throwing bring-up as INIT_THREW instead of a core dump):

    backend Init returns after a stop at 100 / 400 / 1000 / 2500 ms restart stale
    8812AU (Jaguar1, ch6) 1801 / 1469 / 895 / 30 ms OK OK
    RTL8733B (ch6) 2033 / 1579 / 965 / 40 ms OK OK
    MT7612U (ch6) ~0 ms (the stop call blocks on the bring-up lock and returns when bring-up ends) OK OK

    18/18 on each, verify loop seeing frames after every honoured stop. That closes the last item; all six backends are measured.

  4. josephnef commented on Oct 29, 2026

    @josephnef
    CollaboratorAuthor

    All four items landed: #505 (27f3066) and #506 (09c2ff3). The stop-during-Init matrix is 18/18 on all six backends.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions