#[non_exhaustive]pub struct ScxExitEvent {
pub scheduler_name: String,
pub kind: ScxExitKind,
pub message: String,
pub stuck_task_comm: Option<String>,
pub stack: Vec<StackSymbol>,
}Expand description
One parsed scx exit event from a kernel-message buffer window.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.scheduler_name: StringScheduler name extracted from sched_ext: BPF scheduler "<name>" disabled (...).
kind: ScxExitKindExit-kind classification. Defaults to
ScxExitKind::Unclassified via the #[default] arm on the
enum, so an absent kind field round-trips back to the
pre-classification placeholder.
message: StringExit message aggregated from the kernel prints. The
parenthesized text in the anchor line is ei->reason
(kernel/sched/ext.c:6005/6014); the follow-on
sched_ext: <name>: <msg> pr_err line (ext.c:6008) carries
ei->msg. Empty when the kernel emitted no message body.
stuck_task_comm: Option<String>Stuck task COMM (16-byte limit per TASK_COMM_LEN)
extracted from the message body when the parser detects
task <COMM>:<pid> or pid <pid> patterns. None when
the kernel didn’t print a stuck-task identifier (typical
for normal exits).
stack: Vec<StackSymbol>Stack-trace symbol frames in dmesg order (top of stack
first). Each frame holds the function name plus the
funcname+0xoff/0xsz raw text so the consumer can either
use the structured form or recreate the original line.
Trait Implementations§
Source§impl Clone for ScxExitEvent
impl Clone for ScxExitEvent
Source§fn clone(&self) -> ScxExitEvent
fn clone(&self) -> ScxExitEvent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ScxExitEvent
impl Debug for ScxExitEvent
Source§impl Default for ScxExitEvent
impl Default for ScxExitEvent
Source§fn default() -> ScxExitEvent
fn default() -> ScxExitEvent
Source§impl<'de> Deserialize<'de> for ScxExitEvent
impl<'de> Deserialize<'de> for ScxExitEvent
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ScxExitEvent
impl RefUnwindSafe for ScxExitEvent
impl Send for ScxExitEvent
impl Sync for ScxExitEvent
impl Unpin for ScxExitEvent
impl UnwindSafe for ScxExitEvent
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more