Skip to main content

Module preemption_admission

Module preemption_admission 

Source
Expand description

Refuse timer requests that the selected runtime cannot implement.

This is launch policy, not a timer implementation or a replacement for Detcore’s scheduling policy. Cooperative scheduling at existing guest events remains available without a preemption timer. Each refusal is keyed on a capability the backend states, never on its name: a runtime that delivers no preemption timer events refuses every timer request, and one that delivers them but cannot unwind guest stacks refuses the requests to print a stack at each preemption.

Structs§

UnqualifiedAnnotatedReplay
A named, pre-guest refusal of a configuration that cannot replay a callback-annotated priority history (Config::annotated_priority_replay).
UnsupportedPreemption
A named, pre-guest refusal of an unsupported preemption setting.

Functions§

refuse_unqualified_annotated_launch
The library launches’ backstop for the same requirements, on the prepared configuration a backend is about to run: a library caller passes no command line, and its configuration reaches here unqualified. An annotated configuration must meet annotated_priority_replay_unqualified on the capabilities it carries. Its record is not reread here: Detcore refuses a record whose checkpoints disagree with the flag before any thread starts. Nothing is changed or forced.
refuse_unqualified_annotated_replay
Refuse to replay a callback-annotated priority history where its row ends cannot be honored: they are actual callback endpoints at exact RCB counts, guarded one RCB past each. The requirements are Config::annotated_priority_replay_unqualified’s, judged here on the command line’s configuration with the selected backend’s capabilities, so the refusal comes before input is read and names the backend. Without them a replay would neither reach nor bound those endpoints, and silently falling back to the legacy expiry would replay the wrong schedule. A record without checkpoints keeps its existing admission; this check never rewrites the configuration.
refuse_unqualified_annotated_replay_with_capabilities
Preserve the annotated-replay checks for a statically selected adapter.
refuse_unsupported_preemption
Check command-line requests before launching a guest or consuming input. maximum_requested records parser provenance, including config-file and --from inputs. The inherited maximum is not a timer request: it also controls shared clock accounting and cooperative scheduling, and stays unchanged. skid_margin_requested represents the CLI-only PMU setting.
refuse_unsupported_preemption_with_capabilities
The same admission for an executable’s statically declared physical adapter. The name is diagnostic identity; the supplied capabilities determine policy. This never launches a runtime or changes the requested configuration.