xref: /linux/tools/sched_ext/Kconfig (revision 6a8dab043c649450ee58c84c3c6051def96778ed)
1*ee0ff669SCheng-Yang Chou# sched-ext mandatory options
2*ee0ff669SCheng-Yang Chou#
3*ee0ff669SCheng-Yang ChouCONFIG_BPF=y
4*ee0ff669SCheng-Yang ChouCONFIG_BPF_SYSCALL=y
5*ee0ff669SCheng-Yang ChouCONFIG_BPF_JIT=y
6*ee0ff669SCheng-Yang ChouCONFIG_DEBUG_INFO_BTF=y
7*ee0ff669SCheng-Yang ChouCONFIG_BPF_JIT_ALWAYS_ON=y
8*ee0ff669SCheng-Yang ChouCONFIG_BPF_JIT_DEFAULT_ON=y
9*ee0ff669SCheng-Yang ChouCONFIG_SCHED_CLASS_EXT=y
10*ee0ff669SCheng-Yang Chou
11*ee0ff669SCheng-Yang Chou# Required by some rust schedulers (e.g. scx_p2dq)
12*ee0ff669SCheng-Yang Chou#
13*ee0ff669SCheng-Yang ChouCONFIG_KALLSYMS_ALL=y
14*ee0ff669SCheng-Yang Chou
15*ee0ff669SCheng-Yang Chou# Required on arm64
16*ee0ff669SCheng-Yang Chou#
17*ee0ff669SCheng-Yang Chou# CONFIG_DEBUG_INFO_REDUCED is not set
18*ee0ff669SCheng-Yang Chou
19*ee0ff669SCheng-Yang Chou# LAVD tracks futex to give an additional time slice for futex holder
20*ee0ff669SCheng-Yang Chou# (i.e., avoiding lock holder preemption) for better system-wide progress.
21*ee0ff669SCheng-Yang Chou# LAVD first tries to use ftrace to trace futex function calls.
22*ee0ff669SCheng-Yang Chou# If that is not available, it tries to use a tracepoint.
23*ee0ff669SCheng-Yang ChouCONFIG_FUNCTION_TRACER=y
24*ee0ff669SCheng-Yang Chou
25*ee0ff669SCheng-Yang Chou# Enable scheduling debugging
26*ee0ff669SCheng-Yang Chou#
27*ee0ff669SCheng-Yang ChouCONFIG_SCHED_DEBUG=y
28*ee0ff669SCheng-Yang Chou
29*ee0ff669SCheng-Yang Chou# Enable extra scheduling features (for a better code coverage while testing
30*ee0ff669SCheng-Yang Chou# the schedulers)
31*ee0ff669SCheng-Yang Chou#
32*ee0ff669SCheng-Yang ChouCONFIG_SCHED_AUTOGROUP=y
33*ee0ff669SCheng-Yang ChouCONFIG_SCHED_CORE=y
34*ee0ff669SCheng-Yang ChouCONFIG_SCHED_MC=y
35*ee0ff669SCheng-Yang Chou
36*ee0ff669SCheng-Yang Chou# Enable fully preemptible kernel for a better test coverage of the schedulers
37*ee0ff669SCheng-Yang Chou#
38*ee0ff669SCheng-Yang Chou# CONFIG_PREEMPT_NONE is not set
39*ee0ff669SCheng-Yang Chou# CONFIG_PREEMPT_VOLUNTARY is not set
40*ee0ff669SCheng-Yang ChouCONFIG_PREEMPT=y
41*ee0ff669SCheng-Yang ChouCONFIG_PREEMPT_DYNAMIC=y
42*ee0ff669SCheng-Yang Chou
43*ee0ff669SCheng-Yang Chou# Additional debugging information (useful to catch potential locking issues)
44*ee0ff669SCheng-Yang ChouCONFIG_DEBUG_LOCKDEP=y
45*ee0ff669SCheng-Yang ChouCONFIG_DEBUG_ATOMIC_SLEEP=y
46*ee0ff669SCheng-Yang ChouCONFIG_PROVE_LOCKING=y
47*ee0ff669SCheng-Yang Chou
48*ee0ff669SCheng-Yang Chou# Bpftrace headers (for additional debug info)
49*ee0ff669SCheng-Yang ChouCONFIG_BPF_EVENTS=y
50*ee0ff669SCheng-Yang ChouCONFIG_FTRACE_SYSCALLS=y
51*ee0ff669SCheng-Yang ChouCONFIG_DYNAMIC_FTRACE=y
52*ee0ff669SCheng-Yang ChouCONFIG_KPROBES=y
53*ee0ff669SCheng-Yang ChouCONFIG_KPROBE_EVENTS=y
54*ee0ff669SCheng-Yang ChouCONFIG_UPROBES=y
55*ee0ff669SCheng-Yang ChouCONFIG_UPROBE_EVENTS=y
56*ee0ff669SCheng-Yang ChouCONFIG_DEBUG_FS=y
57*ee0ff669SCheng-Yang Chou
58*ee0ff669SCheng-Yang Chou# Enable access to kernel configuration and headers at runtime
59*ee0ff669SCheng-Yang ChouCONFIG_IKHEADERS=y
60*ee0ff669SCheng-Yang ChouCONFIG_IKCONFIG_PROC=y
61*ee0ff669SCheng-Yang ChouCONFIG_IKCONFIG=y
62