mirror of
https://github.com/nestriness/nestri.git
synced 2026-11-05 07:02:50 +02:00
47 lines
1.7 KiB
Plaintext
47 lines
1.7 KiB
Plaintext
# Merged after nestri.fragment when KERNEL_SCX=1: what a sched_ext scheduler
|
|
# needs from the kernel it is loaded into. Off by default, because a guest that
|
|
# does not load one pays for the tracing and debug-info support below and gets
|
|
# nothing back.
|
|
#
|
|
# A scheduler is a BPF program attached through struct_ops, and the loader
|
|
# checks the kernel's own symbols, BTF and config before it will attach.
|
|
# Each group below is one of those checks; the failure when it is missing is
|
|
# the loader's, not the kernel's, and says little.
|
|
|
|
# The class itself, and the BPF it is loaded through. struct_ops resolves a
|
|
# member's stub function by address, so it needs kallsyms.
|
|
CONFIG_SCHED_CLASS_EXT=y
|
|
CONFIG_BPF_SYSCALL=y
|
|
CONFIG_BPF_JIT=y
|
|
CONFIG_KALLSYMS=y
|
|
|
|
# Type information for the kernel's own structures. The stock fragment turns
|
|
# debug info off, and BTF is built from it, so that is undone here. A scheduler reads task
|
|
# fields by BTF, and resolves per-CPU variables such as the preempt count by
|
|
# name, which kallsyms only lists with KALLSYMS_ALL.
|
|
# CONFIG_DEBUG_INFO_NONE is not set
|
|
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
|
|
CONFIG_DEBUG_INFO_BTF=y
|
|
CONFIG_KALLSYMS_ALL=y
|
|
|
|
# The loader reads the running kernel's config from /proc/config.gz to decide
|
|
# which features to use.
|
|
CONFIG_IKCONFIG=y
|
|
CONFIG_IKCONFIG_PROC=y
|
|
|
|
# Tracing the loader checks for and attaches to: debugfs to find it, and
|
|
# function and syscall tracepoints for the futex hooks some schedulers use to
|
|
# boost a lock holder.
|
|
CONFIG_DEBUG_FS=y
|
|
CONFIG_FTRACE=y
|
|
CONFIG_FUNCTION_TRACER=y
|
|
CONFIG_DYNAMIC_FTRACE=y
|
|
CONFIG_FPROBE=y
|
|
CONFIG_FTRACE_SYSCALLS=y
|
|
CONFIG_KPROBES=y
|
|
CONFIG_KPROBE_EVENTS=y
|
|
|
|
# Utilisation hints a scheduler can read from a task.
|
|
CONFIG_UCLAMP_TASK=y
|
|
CONFIG_UCLAMP_TASK_GROUP=y
|