Skip to main content

Crate scx_mavd

Crate scx_mavd 

Source

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Β§

bpf_intf
bpf_skel πŸ”’
bpf_streams πŸ”’
cpu_order πŸ”’
imp
stats πŸ”’
types

StructsΒ§

BpfLinks
BpfMaps
BpfProgs
BpfSkel
BpfSkelBuilder
CpuOrder πŸ”’
OpenBpfMaps
OpenBpfProgs
OpenBpfSkel
Opts πŸ”’
scx_mavd: Latency-criticality Aware Virtual Deadline (LAVD) scheduler
OwnedRef
PerfCpuOrder πŸ”’
SchedSample πŸ”’
SchedSamples πŸ”’
Scheduler πŸ”’
StructOps
SysStats πŸ”’

EnumsΒ§

StatsReq πŸ”’
StatsRes πŸ”’

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Β§

DATA

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.