ZXFoundation™ 26h2
Loading...
Searching...
No Matches
zxfoundation.sched.softirq.core Module Reference

Data Structures

struct  zxfoundation::sched::softirq::balance_req
 Per-CPU softirq balancer state carried by run_queue. More...

Enumerations

enum class  balance_kind : u8 {
  periodic = 0 , newidle = 1 , active = 2 , nohz_idle = 3 ,
  numa = 4
}
 Balancing modes accepted by the SCHED softirq driver.
enum class  balance_result : u8 {
  ok = 0 , no_runnable = 1 , cache_hot = 2 , not_busy = 3 ,
  skip_smt = 4 , throttled = 5 , group_skip = 6
}
 Reason flags for a balance pass failure (mirrors Linux's).

Functions

auto zxfoundation::sched::softirq::balance_req_of (u16 cpu) noexcept -> const balance_req &
 Snapshot-read the per-CPU balance request for diagnostics.
auto zxfoundation::sched::softirq::open_sched_softirq () noexcept -> std::expected< void, lib::kernel_error >
 Open the SCHED_SOFTIRQ vector with the framework.
auto zxfoundation::sched::softirq::raise_balance (u16 cpu, balance_kind kind) noexcept -> void
 Raises SCHED_SOFTIRQ on a target CPU and records the balance kind.
auto zxfoundation::sched::softirq::raise_balance_local (balance_kind kind) noexcept -> void
 Convenience: raises SCHED_SOFTIRQ on the running CPU.

Variables

std::atomic< u32 > completion_count {0U}
 Counter bumped each time the balancer actually runs.
std::atomic< u8 > kind {0U}
 Kind of balancing requested by the most recent raise.
std::atomic< u32 > last_migration_ok {0U}
 Set to 1 when an active-balance migration succeeded.
std::atomic< u32 > request_count {0U}
 Counter bumped each time a balance request is queued.

Files

file  zxfoundation/sched/softirq.zcomponent/core.cxxm
file  zxfoundation/sched/softirq.zcomponent/core.cxx