xref: /linux/tools/sched_ext/Kconfig (revision 6a8dab043c649450ee58c84c3c6051def96778ed)
1# sched-ext mandatory options
2#
3CONFIG_BPF=y
4CONFIG_BPF_SYSCALL=y
5CONFIG_BPF_JIT=y
6CONFIG_DEBUG_INFO_BTF=y
7CONFIG_BPF_JIT_ALWAYS_ON=y
8CONFIG_BPF_JIT_DEFAULT_ON=y
9CONFIG_SCHED_CLASS_EXT=y
10
11# Required by some rust schedulers (e.g. scx_p2dq)
12#
13CONFIG_KALLSYMS_ALL=y
14
15# Required on arm64
16#
17# CONFIG_DEBUG_INFO_REDUCED is not set
18
19# LAVD tracks futex to give an additional time slice for futex holder
20# (i.e., avoiding lock holder preemption) for better system-wide progress.
21# LAVD first tries to use ftrace to trace futex function calls.
22# If that is not available, it tries to use a tracepoint.
23CONFIG_FUNCTION_TRACER=y
24
25# Enable scheduling debugging
26#
27CONFIG_SCHED_DEBUG=y
28
29# Enable extra scheduling features (for a better code coverage while testing
30# the schedulers)
31#
32CONFIG_SCHED_AUTOGROUP=y
33CONFIG_SCHED_CORE=y
34CONFIG_SCHED_MC=y
35
36# Enable fully preemptible kernel for a better test coverage of the schedulers
37#
38# CONFIG_PREEMPT_NONE is not set
39# CONFIG_PREEMPT_VOLUNTARY is not set
40CONFIG_PREEMPT=y
41CONFIG_PREEMPT_DYNAMIC=y
42
43# Additional debugging information (useful to catch potential locking issues)
44CONFIG_DEBUG_LOCKDEP=y
45CONFIG_DEBUG_ATOMIC_SLEEP=y
46CONFIG_PROVE_LOCKING=y
47
48# Bpftrace headers (for additional debug info)
49CONFIG_BPF_EVENTS=y
50CONFIG_FTRACE_SYSCALLS=y
51CONFIG_DYNAMIC_FTRACE=y
52CONFIG_KPROBES=y
53CONFIG_KPROBE_EVENTS=y
54CONFIG_UPROBES=y
55CONFIG_UPROBE_EVENTS=y
56CONFIG_DEBUG_FS=y
57
58# Enable access to kernel configuration and headers at runtime
59CONFIG_IKHEADERS=y
60CONFIG_IKCONFIG_PROC=y
61CONFIG_IKCONFIG=y
62