scx-upstream/scheds/rust
Andrea Righi 2a7b1cc3c4 scx_rustland: properly support offline CPUs
During the initialization phase the scheduler needs to be aware of all
the available CPUs in the system (also those that are offline), in order
to create a proper per-CPU DSQ for all of them.

Otherwise, if some cores are offline, we may get errors like the
following:

  swapper/7[0] triggered exit kind 1024:
    runtime error (invalid DSQ ID 0x0000000000000007)

  Backtrace:
    scx_bpf_consume+0xaa/0xd0
    bpf_prog_42ff1b9d1ac5b184_rustland_dispatch+0x12b/0x187

Change the code to configure the BpfScheduler object with the total
amount of CPUs available in the system and prevent such failure.

This fixes #280.

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
2024-05-12 08:42:46 +02:00
..
scx_lavd scdx_lavd: minor style changes 2024-05-10 11:07:32 +09:00
scx_layered scheds/rust: Use __COMPAT helpers instead of open coding feature tests 2024-04-29 09:58:34 -10:00
scx_rlfifo scx_rustland_core: use a BPF_MAP_TYPE_USER_RINGBUF to dispatch tasks 2024-05-08 22:16:53 +02:00
scx_rustland scx_rustland: properly support offline CPUs 2024-05-12 08:42:46 +02:00
scx_rusty rusty: Remove task offline tracking 2024-05-04 21:33:55 -05:00
meson.build scheds-rust: add explanation for chaining schedulers 2024-04-23 08:30:38 +08:00
README.md scx_lavd: add scx_lavd (Latency-criticality Aware Virtual Deadline) scheduler 2024-03-16 10:31:07 +09:00

RUST SCHEDULERS

Introduction

This directory contains schedulers with user space rust components.

The README in each scheduler directory provides some background and describes the types of workloads or scenarios they're designed to accommodate. For more details on any of these schedulers, please see the header comment in their main.rs or *.bpf.c files.

Schedulers