Re-exportsΒ§
pub(crate) use scx_utils::NR_CPU_IDS;πpub(crate) use scx_utils::init_libbpf_logging;πpub(crate) use std::ffi::CStr;πpub(crate) use std::ffi::CString;πpub(crate) use std::ffi::c_int;πpub(crate) use std::mem;πpub(crate) use std::mem::MaybeUninit;πpub(crate) use std::os::unix::ffi::OsStrExt;πpub(crate) use std::os::unix::fs::MetadataExt;πpub(crate) use std::path::Path;πpub(crate) use std::path::PathBuf;πpub(crate) use std::str;πpub(crate) use std::sync::Arc;πpub(crate) use std::sync::atomic::AtomicBool;πpub(crate) use std::sync::atomic::Ordering;πpub(crate) use std::thread::ThreadId;πpub(crate) use std::time::Duration;πpub(crate) use anyhow::Context;πpub(crate) use anyhow::Result;πpub(crate) use clap::Parser;πpub(crate) use clap_num::number_range;πpub(crate) use crossbeam::channel;πpub(crate) use crossbeam::channel::RecvTimeoutError;πpub(crate) use crossbeam::channel::Sender;πpub(crate) use crossbeam::channel::TrySendError;πpub(crate) use libbpf_rs::AsRawLibbpf;πpub(crate) use libbpf_rs::OpenObject;πpub(crate) use libbpf_rs::PrintLevel;πpub(crate) use libbpf_rs::ProgramInput;πpub(crate) use libbpf_rs::skel::OpenSkel;πpub(crate) use libbpf_rs::skel::Skel;πpub(crate) use libc::c_char;πpub(crate) use plain::Plain;πpub(crate) use scx_arena::ArenaLib;πpub(crate) use scx_utils::EnergyModel;πpub(crate) use scx_utils::NR_CPU_IDS;πpub(crate) use scx_utils::TopologyArgs;πpub(crate) use scx_utils::UserExitInfo;πpub(crate) use PowerProfile;πpub(crate) use fetch_power_profile;πpub(crate) use scx_utils::build_id;πpub(crate) use scx_utils::compat;πpub(crate) use scx_utils::libbpf_clap_opts::LibbpfOpts;πpub(crate) use scx_utils::scx_ops_attach;πpub(crate) use scx_utils::scx_ops_cid_load;πpub(crate) use scx_utils::scx_ops_cid_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(crate) use debug;πpub(crate) use info;πpub(crate) use warn;πpub(crate) use tracing_subscriber::filter::EnvFilter;πpub use bpf_intf::*;pub(crate) use scx_stats::prelude::*;π
ModulesΒ§
StructsΒ§
- BpfLinks
- BpfMaps
- BpfProgs
- BpfSkel
- BpfSkel
Builder - CpuOrder π
- Open
BpfMaps - Open
BpfProgs - Open
BpfSkel - Opts π
- scx_mavd: Latency-criticality Aware Virtual Deadline (LAVD) scheduler
- Owned
Ref - Perf
CpuOrder π - Sched
Sample π - Sched
Samples π - Scheduler π
- Struct
Ops - SysStats π
EnumsΒ§
ConstantsΒ§
- SCHEDULER_
NAME π - SUB_
SCHED_ πPATH_ MAX - The stats socket is /var/run/scx/
/stats and a UNIX socket path holds at most 107 bytes.
StaticsΒ§
FunctionsΒ§
- build_
skel_ config - clap_
main_ πfn - init_
log π - main
- sub_
cgroup π - Resolve the attach cgroup: its id, which is its inode number, and the
scheduler path its stats server lives under. The path mirrors the cgroupβs
path below /sys/fs/cgroup under sub/, or is sub/
for a cgroup outside that mount or with a path too long for a socket. A path that is not a cgroup, or the cgroup root, is refused. - trim_
heap_ πafter_ init - Return heap freed during initialization to the OS.