| # 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 |