Skip to main content

Crate scx_mitosis

Crate scx_mitosis 

Source

Re-exportsΒ§

pub(crate) use libbpf_rs::MapCore as _; πŸ”’
pub(crate) use scx_utils::NR_CPUS_POSSIBLE; πŸ”’
pub(crate) use scx_utils::scx_enums; πŸ”’
pub(crate) use std::cmp::max; πŸ”’
pub(crate) use HashMap; πŸ”’
pub(crate) use HashSet; πŸ”’
pub(crate) use std::fmt; πŸ”’
pub(crate) use std::fmt::Display; πŸ”’
pub(crate) use std::mem::MaybeUninit; πŸ”’
pub(crate) use std::os::fd::AsFd; πŸ”’
pub(crate) use std::path::PathBuf; πŸ”’
pub(crate) use std::sync::Arc; πŸ”’
pub(crate) use std::sync::atomic::AtomicBool; πŸ”’
pub(crate) use std::sync::atomic::AtomicU32; πŸ”’
pub(crate) use std::sync::atomic::Ordering; πŸ”’
pub(crate) use std::time::Duration; πŸ”’
pub(crate) use std::time::Instant; πŸ”’
pub(crate) use anyhow::Context; πŸ”’
pub(crate) use anyhow::Result; πŸ”’
pub(crate) use anyhow::bail; πŸ”’
pub(crate) use clap::Parser; πŸ”’
pub(crate) use libbpf_rs::OpenObject; πŸ”’
pub(crate) use libbpf_rs::ProgramInput; πŸ”’
pub(crate) use Epoll; πŸ”’
pub(crate) use EpollCreateFlags; πŸ”’
pub(crate) use EpollEvent; πŸ”’
pub(crate) use EpollFlags; πŸ”’
pub(crate) use EpollTimeout; πŸ”’
pub(crate) use nix::sys::eventfd::EventFd; πŸ”’
pub(crate) use scx_utils::Cpumask; πŸ”’
pub(crate) use scx_utils::NR_CPUS_POSSIBLE; πŸ”’
pub(crate) use scx_utils::Topology; πŸ”’
pub(crate) use scx_utils::TopologyArgs; πŸ”’
pub(crate) use scx_utils::UserExitInfo; πŸ”’
pub(crate) use scx_utils::build_id; πŸ”’
pub(crate) use scx_utils::compat; πŸ”’
pub(crate) use scx_utils::init_libbpf_logging; πŸ”’
pub(crate) use scx_utils::libbpf_clap_opts::LibbpfOpts; πŸ”’
pub(crate) use scx_utils::scx_enums; πŸ”’
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::uei_exited; πŸ”’
pub(crate) use scx_utils::uei_report; πŸ”’
pub(crate) use debug; πŸ”’
pub(crate) use info; πŸ”’
pub(crate) use trace; πŸ”’
pub(crate) use warn; πŸ”’
pub(crate) use tracing_subscriber::filter::EnvFilter; πŸ”’
pub(crate) use scx_stats::prelude::*; πŸ”’

ModulesΒ§

bpf_intf
bpf_skel πŸ”’
cell_manager πŸ”’
Cell manager for userspace-driven cell creation.
config πŸ”’
imp
stats πŸ”’
topology πŸ”’
types
undefok_flags πŸ”’

StructsΒ§

BpfLinks
BpfMaps
BpfProgs
BpfSkel
BpfSkelBuilder
Cell πŸ”’
CellManager πŸ”’
Manages cells for direct child cgroups of a specified parent
CellMetrics πŸ”’
ConfiguredCells πŸ”’
CpuAssignment πŸ”’
Result of CPU assignment computation, containing both primary and optional borrowable masks.
CpuRecipient πŸ”’
Generic allocation input for a CPU partitioning recipient.
DistributionStats πŸ”’
Metrics πŸ”’
MitosisTopology πŸ”’
OpenBpfMaps
OpenBpfProgs
OpenBpfSkel
Opts πŸ”’
scx_mitosis: A dynamic affinity scheduler
OwnedRef
Scheduler πŸ”’
StructOps
Subcell πŸ”’

EnumsΒ§

CellSource πŸ”’
Where the scheduler’s cells come from.
SubcellMatch πŸ”’

ConstantsΒ§

DEMAND_ONE πŸ”’
Fixed-point 1.0 of the per-task demand accumulated by BPF.
INOTIFY_TOKEN πŸ”’
Epoll token for inotify events (cgroup creation/destruction)
MAX_CELLS πŸ”’
MAX_SUBCELLS_PER_CELL πŸ”’
NR_CSTATS πŸ”’
QUEUE_STATS_IDX πŸ”’
SCHEDULER_NAME πŸ”’
SHARE_SIBLING_SUBCELL_CPUS πŸ”’
STATS_TOKEN πŸ”’
Epoll token for stats request wakeups

StaticsΒ§

DATA

FunctionsΒ§

build_skel_config
copy_cstr πŸ”’
default_subcell_name πŸ”’
main πŸ”’
parse_ewma_factor πŸ”’
read_bpf_cell πŸ”’
read_cpu_ctxs πŸ”’
read_cpumask_from_bytes πŸ”’
read_subcell_accounts πŸ”’
Read the per-CPU accounting slots of active_subcells from BPF.
run πŸ”’
validate_subcell_assignments πŸ”’
write_cpumask_to_config πŸ”’
write_subcell_matches πŸ”’