pub struct RingTelemetry {
pub control: ControlSnapshot,
pub occupancy: RingOccupancy,
pub slots: Vec<RingSlotSnapshot>,
pub windows: Vec<WindowTelemetry>,
}Expand description
Combined host-visible telemetry for a megakernel run.
Fields§
§control: ControlSnapshotDecoded control-buffer snapshot.
occupancy: RingOccupancyOccupancy summary.
slots: Vec<RingSlotSnapshot>All decoded slots.
windows: Vec<WindowTelemetry>Decoded ticketed windows for any caller-specified window opcodes.
Implementations§
Source§impl RingTelemetry
impl RingTelemetry
Sourcepub fn sketch(
&self,
depth: usize,
width: usize,
) -> Result<SketchTelemetry, PipelineError>
pub fn sketch( &self, depth: usize, width: usize, ) -> Result<SketchTelemetry, PipelineError>
Build compact sketches from the decoded telemetry snapshot.
This is the host mirror of the telemetry shape a GPU-resident scheduler/fuzzer can maintain in control memory: hot opcodes, active work, tenant pressure, status pressure, and dispatch metrics all become bounded-size counters with deterministic replay semantics.
§Errors
Returns PipelineError when sketch dimensions are invalid.
Sourcepub fn sketch_into(
&self,
depth: usize,
width: usize,
scratch: &mut SketchTelemetryScratch,
) -> Result<(), PipelineError>
pub fn sketch_into( &self, depth: usize, width: usize, scratch: &mut SketchTelemetryScratch, ) -> Result<(), PipelineError>
Build compact sketches into caller-owned scratch.
§Errors
Returns PipelineError when sketch dimensions are invalid.
Source§impl RingTelemetry
impl RingTelemetry
Sourcepub fn decode(control_bytes: &[u8], ring_bytes: &[u8]) -> Self
pub fn decode(control_bytes: &[u8], ring_bytes: &[u8]) -> Self
Decode the ring and control buffers into one structured snapshot.
Sourcepub fn try_decode(
control_bytes: &[u8],
ring_bytes: &[u8],
) -> Result<Self, PipelineError>
pub fn try_decode( control_bytes: &[u8], ring_bytes: &[u8], ) -> Result<Self, PipelineError>
Strictly decode ring and control bytes after validating ABI alignment.
§Errors
Returns PipelineError when buffers are truncated or not aligned to
the megakernel wire protocol.
Sourcepub fn decode_with_window_opcodes(
control_bytes: &[u8],
ring_bytes: &[u8],
window_opcodes: &[u32],
) -> Self
pub fn decode_with_window_opcodes( control_bytes: &[u8], ring_bytes: &[u8], window_opcodes: &[u32], ) -> Self
Decode the ring and control buffers, additionally grouping any slots
whose opcode is present in window_opcodes into ticketed route-window
telemetry records.
Sourcepub fn decode_with_window_opcodes_into(
control_bytes: &[u8],
ring_bytes: &[u8],
window_opcodes: &[u32],
out: &mut Self,
scratch: &mut TelemetryDecodeScratch,
)
pub fn decode_with_window_opcodes_into( control_bytes: &[u8], ring_bytes: &[u8], window_opcodes: &[u32], out: &mut Self, scratch: &mut TelemetryDecodeScratch, )
Decode the ring and control buffers into caller-owned telemetry and scratch storage.
Sourcepub fn try_decode_with_window_opcodes(
control_bytes: &[u8],
ring_bytes: &[u8],
window_opcodes: &[u32],
) -> Result<Self, PipelineError>
pub fn try_decode_with_window_opcodes( control_bytes: &[u8], ring_bytes: &[u8], window_opcodes: &[u32], ) -> Result<Self, PipelineError>
Strictly decode ring/control bytes and group selected window opcodes.
§Errors
Returns PipelineError when buffers are truncated or not aligned to
the megakernel wire protocol.
Sourcepub fn try_decode_with_window_opcodes_into(
control_bytes: &[u8],
ring_bytes: &[u8],
window_opcodes: &[u32],
out: &mut Self,
scratch: &mut TelemetryDecodeScratch,
) -> Result<(), PipelineError>
pub fn try_decode_with_window_opcodes_into( control_bytes: &[u8], ring_bytes: &[u8], window_opcodes: &[u32], out: &mut Self, scratch: &mut TelemetryDecodeScratch, ) -> Result<(), PipelineError>
Strictly decode ring/control bytes into caller-owned telemetry and scratch storage.
§Errors
Returns PipelineError when buffers are truncated or not aligned to
the megakernel wire protocol.
Sourcepub fn active_slots_for_opcode(&self, opcode: u32) -> Vec<&RingSlotSnapshot>
pub fn active_slots_for_opcode(&self, opcode: u32) -> Vec<&RingSlotSnapshot>
Active slots matching a given opcode.
Sourcepub fn try_active_slots_for_opcode(
&self,
opcode: u32,
) -> Result<Vec<&RingSlotSnapshot>, PipelineError>
pub fn try_active_slots_for_opcode( &self, opcode: u32, ) -> Result<Vec<&RingSlotSnapshot>, PipelineError>
Active slots matching a given opcode with fallible output staging.
§Errors
Returns PipelineError when output storage cannot be reserved.
Sourcepub fn active_slots_for_opcode_iter(
&self,
opcode: u32,
) -> impl Iterator<Item = &RingSlotSnapshot>
pub fn active_slots_for_opcode_iter( &self, opcode: u32, ) -> impl Iterator<Item = &RingSlotSnapshot>
Active slots matching a given opcode as an iterator.
Sourcepub fn active_slots_for_opcode_into<'a>(
&'a self,
opcode: u32,
out: &mut Vec<&'a RingSlotSnapshot>,
)
pub fn active_slots_for_opcode_into<'a>( &'a self, opcode: u32, out: &mut Vec<&'a RingSlotSnapshot>, )
Active slots matching a given opcode into caller-owned storage.
Sourcepub fn try_active_slots_for_opcode_into<'a>(
&'a self,
opcode: u32,
out: &mut Vec<&'a RingSlotSnapshot>,
) -> Result<(), PipelineError>
pub fn try_active_slots_for_opcode_into<'a>( &'a self, opcode: u32, out: &mut Vec<&'a RingSlotSnapshot>, ) -> Result<(), PipelineError>
Active slots matching a given opcode into caller-owned storage.
§Errors
Returns PipelineError when output storage cannot be reserved.
Sourcepub fn active_windows(&self) -> Vec<&WindowTelemetry>
pub fn active_windows(&self) -> Vec<&WindowTelemetry>
Unfinished ticketed windows.
Sourcepub fn try_active_windows(&self) -> Result<Vec<&WindowTelemetry>, PipelineError>
pub fn try_active_windows(&self) -> Result<Vec<&WindowTelemetry>, PipelineError>
Unfinished ticketed windows with fallible output staging.
§Errors
Returns PipelineError when output storage cannot be reserved.
Sourcepub fn active_windows_into<'a>(&'a self, out: &mut Vec<&'a WindowTelemetry>)
pub fn active_windows_into<'a>(&'a self, out: &mut Vec<&'a WindowTelemetry>)
Unfinished ticketed windows into caller-owned storage.
Sourcepub fn try_active_windows_into<'a>(
&'a self,
out: &mut Vec<&'a WindowTelemetry>,
) -> Result<(), PipelineError>
pub fn try_active_windows_into<'a>( &'a self, out: &mut Vec<&'a WindowTelemetry>, ) -> Result<(), PipelineError>
Unfinished ticketed windows into caller-owned storage.
§Errors
Returns PipelineError when output storage cannot be reserved.
Sourcepub fn priority_accounting(&self) -> PriorityRequeueAccounting
pub fn priority_accounting(&self) -> PriorityRequeueAccounting
Summarize priority requeue/aging pressure visible in the ring snapshot.
Sourcepub fn runtime_counters(&self) -> MegakernelRuntimeCounters
pub fn runtime_counters(&self) -> MegakernelRuntimeCounters
Aggregate queue, idle, fairness, and drain counters into one cheap runtime snapshot for SRE dashboards and launch-policy feedback.
Sourcepub fn health_since(
&self,
previous: &RingTelemetry,
) -> MegakernelWatchdogSnapshot
pub fn health_since( &self, previous: &RingTelemetry, ) -> MegakernelWatchdogSnapshot
Derive persistent-kernel health from two snapshots without polling the device or synchronizing with the GPU.
Sourcepub fn recommend_launch(
&self,
request: MegakernelLaunchRequest,
) -> Result<MegakernelLaunchRecommendation, BackendError>
pub fn recommend_launch( &self, request: MegakernelLaunchRequest, ) -> Result<MegakernelLaunchRecommendation, BackendError>
Feed telemetry into the shared launch policy.
§Errors
Returns a backend error when the supplied adapter limits are malformed.
Trait Implementations§
Source§impl Clone for RingTelemetry
impl Clone for RingTelemetry
Source§fn clone(&self) -> RingTelemetry
fn clone(&self) -> RingTelemetry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RingTelemetry
impl Debug for RingTelemetry
Source§impl Default for RingTelemetry
impl Default for RingTelemetry
Source§fn default() -> RingTelemetry
fn default() -> RingTelemetry
Source§impl PartialEq for RingTelemetry
impl PartialEq for RingTelemetry
Source§fn eq(&self, other: &RingTelemetry) -> bool
fn eq(&self, other: &RingTelemetry) -> bool
self and other values to be equal, and is used by ==.impl Eq for RingTelemetry
impl StructuralPartialEq for RingTelemetry
Auto Trait Implementations§
impl Freeze for RingTelemetry
impl RefUnwindSafe for RingTelemetry
impl Send for RingTelemetry
impl Sync for RingTelemetry
impl Unpin for RingTelemetry
impl UnsafeUnpin for RingTelemetry
impl UnwindSafe for RingTelemetry
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.