# sched-ext mandatory options # CONFIG_BPF=y CONFIG_BPF_SYSCALL=y CONFIG_BPF_JIT=y CONFIG_DEBUG_INFO_BTF=y CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_BPF_JIT_DEFAULT_ON=y CONFIG_SCHED_CLASS_EXT=y # Required by some rust schedulers (e.g. scx_p2dq) # CONFIG_KALLSYMS_ALL=y # Required on arm64 # # CONFIG_DEBUG_INFO_REDUCED is not set # LAVD tracks futex to give an additional time slice for futex holder # (i.e., avoiding lock holder preemption) for better system-wide progress. # LAVD first tries to use ftrace to trace futex function calls. # If that is not available, it tries to use a tracepoint. CONFIG_FUNCTION_TRACER=y # Enable scheduling debugging # CONFIG_SCHED_DEBUG=y # Enable extra scheduling features (for a better code coverage while testing # the schedulers) # CONFIG_SCHED_AUTOGROUP=y CONFIG_SCHED_CORE=y CONFIG_SCHED_MC=y # Enable fully preemptible kernel for a better test coverage of the schedulers # # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y CONFIG_PREEMPT_DYNAMIC=y # Additional debugging information (useful to catch potential locking issues) CONFIG_DEBUG_LOCKDEP=y CONFIG_DEBUG_ATOMIC_SLEEP=y CONFIG_PROVE_LOCKING=y # Bpftrace headers (for additional debug info) CONFIG_BPF_EVENTS=y CONFIG_FTRACE_SYSCALLS=y CONFIG_DYNAMIC_FTRACE=y CONFIG_KPROBES=y CONFIG_KPROBE_EVENTS=y CONFIG_UPROBES=y CONFIG_UPROBE_EVENTS=y CONFIG_DEBUG_FS=y # Enable access to kernel configuration and headers at runtime CONFIG_IKHEADERS=y CONFIG_IKCONFIG_PROC=y CONFIG_IKCONFIG=y