Per-CPU run queue — schedules strands (execution contexts). More...
Public Member Functions | |
| auto | operator= (const run_queue &)=delete |
| auto | operator= (run_queue &&)=delete |
| run_queue (const run_queue &)=delete | |
| run_queue (run_queue &&)=delete | |
Data Fields | |
| i64 | avg_vruntime_acc {0} |
| u64 | avg_weight_acc {0} |
| std::atomic< u64 > | balance_attached_asce {0} |
| std::atomic< u8 > | balance_attached_dgp_state {0} |
| std::atomic< u32 > | balance_attached_domain_id {0} |
| std::atomic< i64 > | balance_avg_vruntime_acc {0} |
| std::atomic< u64 > | balance_avg_weight_acc {0} |
| std::atomic< u64 > | balance_cfs_load_avg {0} |
| std::atomic< u64 > | balance_cfs_runnable_avg {0} |
| std::atomic< u64 > | balance_cfs_util_avg {0} |
| std::atomic< u32 > | balance_cpu_capacity_curr {1024} |
| std::atomic< u64 > | balance_min_vruntime {0} |
| Lockless advisory view consumed by remote balancers. | |
| std::atomic< u32 > | balance_nr_running {0} |
| std::atomic< u32 > | balance_online {0} |
| sched_avg_rq | cfs_avg {} |
Per-CPU PELT averaging accumulator (mirrors Linux's cfs_rq::avg). | |
| sync::qspinlock::qspinlock | context_lock {} |
| Serializes ASCE / CR1 loads during context switch. | |
| u32 | cpu_capacity_curr {1024} |
| Current CPU capacity — dynamically reduced by RT pressure and restored by tick decay (matches Linux scheduler). | |
| u32 | cpu_capacity_orig {1024} |
| Original CPU capacity (SMT-aware throughput units, 1024=max). | |
| u16 | cpu_id {0} |
| Logical CPU ID this run_queue belongs to. | |
| dgp::domain::strand * | curr {nullptr} |
| Currently running strand. | |
| lib::list_head | deadline_queue {} |
| Conservative EDF deadline queue. | |
| lib::rb_root_cached | fair_tree {} |
| EEVDF fair scheduling tree (cached leftmost = earliest deadline). | |
| dgp::domain::strand * | idle_strand {nullptr} |
| This CPU's idle strand. | |
| sync::qspinlock::qspinlock | lock {} |
| Protects run queue data (enqueue/dequeue/select). | |
| u64 | min_vruntime {0} |
| Monotonically increasing vruntime floor. | |
| u32 | nohz_flags {0} |
| Per-CPU nohz idle state (tickless flags). | |
| u32 | nr_running {0} |
| Total runnable strands on this CPU. | |
| std::atomic< u32 > | online {0} |
| Set to 1 when this CPU's run queue is fully initialized. | |
| rt::bw::rt_bandwidth | rt_bw {} |
| Per-CPU RT bandwidth controller (1 s period, 950 ms quota). | |
| lib::list_head | rt_queue {} |
| RT FIFO queue (domains dequeued in FIFO order). | |
| sd::sched_domain_tree | sd_tree {} |
| Per-CPU scheduler-domain hierarchy (SMT → MC → DIE → BOOK → NUMA). | |
Per-CPU run queue — schedules strands (execution contexts).