scx/rust/scx_utils
Andrea Righi d7bb5a7cba topology: Add TopologyMap
Introuce a TopologyMap object, represented as an array of arrays, where
each inner array corresponds to a core containing its associated CPU
IDs.

This object can be used as a cache to facilitate efficient iteration
over the entire host's topology.

Example usage:

  let topo = Topology::new()?;
  let topo_map = TopologyMap::new(topo)?;
  for (core_id, core) in topo_map.iter().enumerate() {
      for cpu in core {
          println!("core={} cpu={}", core_id, cpu);
      }
  }

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
2024-04-24 17:08:06 +02:00
..
src topology: Add TopologyMap 2024-04-24 17:08:06 +02:00
.gitignore rustu: Import scx_rusty and scx_layered from kernel tree 2023-11-30 13:13:41 -10:00
bindings.h rust/scx_utils: Add user_exit_info support 2024-01-31 10:54:15 -10:00
bpf_h scx_utils: Add mod bpf_h 2023-11-28 15:20:01 -10:00
build.rs scx_utils: introduce Builder() 2024-02-28 17:49:44 +01:00
Cargo.toml Cargo.toml: Update libbpf-rs/cargo dependencies to 0.23 and drop patch.crates-io sections 2024-04-02 11:19:39 -10:00
LICENSE rust: clarify license and include text 2023-12-12 13:02:13 -08:00
meson.build Fetch and build bpftool by default 2024-03-11 10:00:01 -07:00
README.md scx_utils: Documentation and other minor updates 2023-12-02 23:56:36 -10:00

Utility collection for sched_ext schedulers

sched_ext is a Linux kernel feature which enables implementing kernel thread schedulers in BPF and dynamically loading them.

Thie crate is a collection of utilities for sched_ext scheduler implementations which use Rust for userspace component. This enables implementing hot paths in BPF while offloading colder and more complex operations to userspace Rust code which can be significantly more convenient and powerful.

Please see documentation for more details.