pub const MAX_WATCH_SNAPSHOTS: usize = 3;Expand description
Shared state owning the capture closure plus the captured-report map.
Cloneable via the wrapped Arcs. The host installs an instance
in the executor’s thread-local via Self::set_thread_local
before execute_steps
runs; the executor’s Op::CaptureSnapshot arm calls
Self::capture with the op’s name.
Maximum number of Op::WatchSnapshot
ops a single scenario may register.
This is the framework’s per-scenario cap on user watchpoint slots
across every supported host architecture, not a count of debug
registers on any specific arch. One additional slot (slot 0) is
always reserved internally for the *scx_root->exit_kind
watchpoint that drives the error-class freeze trigger, so a host
must expose at least 4 hardware watchpoint slots through
KVM_SET_GUEST_DEBUG for every user Op::WatchSnapshot to arm.
Common x86_64 and aarch64 hosts meet that bar.
The actual host slot count is probed once during VM bring-up via
KVM_CHECK_EXTENSION(KVM_CAP_GUEST_DEBUG_HW_WPS) in
crate::vmm::freeze_coord (search for Cap::DebugHwWps); a
host returning <= 0 or fewer than 4 slots logs a tracing::warn!
at coordinator setup. Per-arm failures surface as tracing::warn!
from self_arm_watchpoint with per-vCPU retry capping at
WATCHPOINT_MAX_NON_EINTR_FAILURES.