pub struct SchedulerMetrics {Show 14 fields
pub context_switches: AtomicU64,
pub voluntary_switches: AtomicU64,
pub involuntary_switches: AtomicU64,
pub scheduler_cycles: AtomicU64,
pub switch_cycles: AtomicU64,
pub schedule_calls: AtomicU64,
pub idle_scheduled: AtomicU64,
pub avg_switch_latency: AtomicU64,
pub min_switch_latency: AtomicU64,
pub max_switch_latency: AtomicU64,
pub load_balance_count: AtomicU64,
pub task_migrations: AtomicU64,
pub ipc_blocks: AtomicU64,
pub ipc_wakeups: AtomicU64,
}Expand description
Scheduler performance metrics
Fields§
§context_switches: AtomicU64Total number of context switches
voluntary_switches: AtomicU64Number of voluntary context switches (yield, sleep, block)
involuntary_switches: AtomicU64Number of involuntary context switches (preemption)
scheduler_cycles: AtomicU64Total CPU cycles spent in scheduler
switch_cycles: AtomicU64Total CPU cycles spent in context switching
schedule_calls: AtomicU64Number of scheduling decisions made
idle_scheduled: AtomicU64Number of times idle task was scheduled
avg_switch_latency: AtomicU64Average context switch latency in cycles
min_switch_latency: AtomicU64Minimum context switch latency
max_switch_latency: AtomicU64Maximum context switch latency
load_balance_count: AtomicU64Load balancing operations
task_migrations: AtomicU64Task migrations between CPUs
ipc_blocks: AtomicU64IPC blocks
ipc_wakeups: AtomicU64IPC wakeups
Implementations§
Source§impl SchedulerMetrics
impl SchedulerMetrics
Sourcepub fn record_context_switch(&self, latency_cycles: u64, voluntary: bool)
pub fn record_context_switch(&self, latency_cycles: u64, voluntary: bool)
Record a context switch
Sourcepub fn record_scheduler_overhead(&self, cycles: u64)
pub fn record_scheduler_overhead(&self, cycles: u64)
Record scheduler overhead
Sourcepub fn record_idle_scheduled(&self)
pub fn record_idle_scheduled(&self)
Record idle task scheduled
Sourcepub fn record_load_balance(&self)
pub fn record_load_balance(&self)
Record load balancing operation
Sourcepub fn record_migration(&self)
pub fn record_migration(&self)
Record task migration
Sourcepub fn record_ipc_block(&self)
pub fn record_ipc_block(&self)
Record IPC block
Sourcepub fn record_ipc_wakeup(&self)
pub fn record_ipc_wakeup(&self)
Record IPC wakeup
Sourcepub fn get_summary(&self) -> MetricsSummary
pub fn get_summary(&self) -> MetricsSummary
Get summary of metrics