Skip to content

Probe stage 3: the daemon queues probe requests and runs the runner (request_dir, busy_dir, job files, verbs, idle gate, judge_cmd) #77

Open

Description

@linuxnow

The daemon never invokes plugin-hostd-probe today: no scan on add, no queue, no idle gate. The probe-output spec (openmixer docs/design/specs/2026-10-17-probe-output-interface.md §2 steps 1-11, §4, §6 stage 3) and owner spec §6.8-§6.10 (decisions D1, D2, D7) decide the shape: probe_request/probe_cancel/probe_list verbs and probe_* events declared in protocol.h; request files in request_dir taken by inotify; job files in probe_dir/jobs with one writer; the busy lease in busy_dir (busy_set/busy_clear) cancelling a running probe within 100 ms plus the grace; the D7 idle rule (quiet window, load threshold, cpus off the engine) and auto_measure off by default (D2); judge_cmd run on a finished job; the directories of §6.9 with their defaults and the refusal of an unwritable one. Done when the busy, cancel, request-file and runner-equals-daemon tests of spec §7.2 pass with their sabotage arms. Tracked by openmixer#1858; hostd#74 (response curves) builds on it.

Activity

  1. added
    enhancementNew feature or request
    P2Important — fix this month
    on Oct 18, 2026
  2. linuxnow commented on Oct 18, 2026

    @linuxnow
    ContributorAuthor

    Decision (2026-10-18): this stays blocked. It needs #78, which waits for omx-contract#94, and it needs the D7 idle-gate thresholds, which nothing I can read fixes. Before the idle gate can be built, someone has to rule on four things:

    1. The quiet window: how long the console must have had no busy lease and no client command before a probe may start. Is it a key (probe_idle_quiet_ms?) and what is its default?
    2. The load threshold: which figure (loadavg 1 min, or PSI cpu some avg10), compared with what (an absolute value, or a share of the cpus not given to the engine), and its default.
    3. The cpus off the engine: where the daemon learns which cpus the engine owns (a key listing them, the engine's cpuset, or worker_env cpus) and what it does when none are free.
    4. auto_measure is off by default (D2): may a request file or probe_request run while it is off, or does it only queue?
      No code until these are decided.
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

    P2Important — fix this monthenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions