[PW_SID:1073526] block: Introduce a BPF-based I/O scheduler#1676
[PW_SID:1073526] block: Introduce a BPF-based I/O scheduler#1676linux-riscv-bot wants to merge 2 commits into
Conversation
Introduce IOSCHED_UFQ, a blk-mq elevator ("ufq: User-programmable
Flexible Queueing") whose policy is supplied by an eBPF program via
struct_ops (insert, dispatch, merge, finish, etc.).
When no eBPF program is attached, the UFQ I/O scheduler uses a simple,
per-ctx queueing policy (similar to none). After an eBPF program is
attached, the user-defined scheduling policy replaces UFQ’s built-in
queueing policy, while per-ctx queues remain available as a fallback
mechanism.
Signed-off-by: Kaitao Cheng <chengkaitao@kylinos.cn>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
Add ufq_iosched as a simple example for the UFQ block I/O scheduler, In the ufq_simple example, we implement the eBPF struct_ops hooks the kernel exposes so we can exercise and validate the behavior and stability of the kernel UFQ scheduling framework. The Makefile and directory layout are modeled after sched_ext. This mirrors the sched_ext examples pattern so developers can experiment with user-defined queueing policies on top of IOSCHED_UFQ. Signed-off-by: Kaitao Cheng <chengkaitao@kylinos.cn> Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 1: "[RFC,1/2] block: Introduce the UFQ I/O scheduler" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
|
Patch 2: "[RFC,2/2] tools/ufq_iosched: add BPF example scheduler and build scaffolding" |
PR for series 1073526 applied to workflow__riscv__fixes
Name: block: Introduce a BPF-based I/O scheduler
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1073526
Version: 1