pub const STALL_WINDOW: usize = 4;Expand description
Sliding-window size: number of consecutive flat samples that
flip the stall predicate. W=4 with DEFAULT_POLL_INTERVAL_MS
= 2 s detection latency. Constant rather than env-tunable —
the operator already controls latency via the poll interval,
and a smaller W would false-positive on transient idle.
§False-positive on slow-period workloads
A worker that legitimately runs once per interval * W
(e.g. a periodic 10 s sleep tracker on a 2 s poll) will look
“stuck” for the full W-sample window because both counters
stay flat between the worker’s wakeups. The fire is a true
“no forward progress” observation — the operator distinguishes
false-positive (intentional slow period) from true stall
(kernel-side hang) via the StallDiagnostic::wchan field on
the report: a healthy slow-period worker shows a do_nanosleep
/ pipe_read / epoll_wait wchan, while a true stall shows
the offending kernel function. Per the no-silent-drops
policy the framework opts for the loud-fire path rather than
guessing the worker’s intended cadence.