Expand description
Flow scheduler front end.
Copyright (c) 2026 Galih Tama galpt@v.recipes Loads the BPF object, seeds the topology view, then drives the loop. Observability is counters through the stats server plus the loopback dashboard with per CPU cards plus a JSON snapshot for debugging.
Re-exportsยง
pub(crate) use std::mem::MaybeUninit;๐pub(crate) use std::sync::Arc;๐pub(crate) use std::sync::atomic::AtomicBool;๐pub(crate) use std::sync::atomic::Ordering;๐pub(crate) use std::time::Duration;๐pub(crate) use anyhow::Result;๐pub(crate) use clap::CommandFactory;๐pub(crate) use clap::Parser;๐pub(crate) use clap_complete::Shell;๐pub(crate) use clap_complete::generate;๐pub(crate) use crossbeam::channel::RecvTimeoutError;๐pub(crate) use log::info;๐pub(crate) use scx_utils::UserExitInfo;๐pub(crate) use scx_utils::build_id;๐pub(crate) use scx_utils::libbpf_clap_opts::LibbpfOpts;๐pub(crate) use scx_utils::scx_ops_attach;๐pub(crate) use scx_utils::scx_ops_load;๐pub(crate) use scx_utils::scx_ops_open;๐pub(crate) use scx_utils::try_set_rlimit_infinity;๐pub(crate) use scx_utils::uei_exited;๐pub(crate) use scx_utils::uei_report;๐pub use bpf_intf::*;pub(crate) use scx_stats::prelude::*;๐
Modulesยง
- bpf_
intf - bpf_
skel ๐ - config ๐
- Validated scheduling constants for the flow scheduler.
- imp
- snapshot ๐
- Snapshot reads for the flow scheduler.
- stats ๐
- Stats server for the flow scheduler.
- topology ๐
- Topology view for the flow scheduler.
- types
- webui ๐
- Loopback dashboard for the flow scheduler.
Structsยง
- BpfLinks
- BpfMaps
- BpfProgs
- BpfSkel
- BpfSkel
Builder - Config ๐
- Validated scheduling constants.
- Metrics ๐
- Counters with placement, admission, and miss detail. BPF holds 17 counters, Rust adds display-only uptime for eighteen.
- Open
BpfMaps - Open
BpfProgs - Open
BpfSkel - Opts ๐
- Owned
Ref - Scheduler ๐
- Struct
Ops
Constantsยง
- SCHEDULER_
NAME ๐
Staticsยง
Functionsยง
- build_
skel_ config - full_
version ๐ - main ๐
- poll_
interval_ ๐secs - Validated poll interval from float seconds. Rejects NaN plus infinite plus non-positive plus over one hour, so a bad flag fails closed before any timer starts with no panic.