]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
e26af0e8 | 2 | |
e26af0e8 | 3 | /* |
86bfbb7c PZ |
4 | * Using the avg_vruntime, do the right thing and preserve lag across |
5 | * sleep+wake cycles. EEVDF placement strategy #1, #2 if disabled. | |
e26af0e8 | 6 | */ |
86bfbb7c | 7 | SCHED_FEAT(PLACE_LAG, true) |
f25b7b32 PZ |
8 | /* |
9 | * Give new tasks half a slice to ease into the competition. | |
10 | */ | |
147f3efa | 11 | SCHED_FEAT(PLACE_DEADLINE_INITIAL, true) |
f25b7b32 PZ |
12 | /* |
13 | * Inhibit (wakeup) preemption until the current task has either matched the | |
14 | * 0-lag point or until is has exhausted it's slice. | |
15 | */ | |
63304558 | 16 | SCHED_FEAT(RUN_TO_PARITY, true) |
e26af0e8 | 17 | |
e26af0e8 PZ |
18 | /* |
19 | * Prefer to schedule the task we woke last (assuming it failed | |
20 | * wakeup-preemption), since its likely going to consume data we | |
21 | * touched, increases cache locality. | |
22 | */ | |
f8b6d1cc | 23 | SCHED_FEAT(NEXT_BUDDY, false) |
e26af0e8 | 24 | |
e26af0e8 | 25 | /* |
3b03706f | 26 | * Consider buddies to be cache hot, decreases the likeliness of a |
e26af0e8 PZ |
27 | * cache buddy being migrated away, increases cache locality. |
28 | */ | |
f8b6d1cc | 29 | SCHED_FEAT(CACHE_HOT_BUDDY, true) |
e26af0e8 | 30 | |
152e11f6 PZ |
31 | /* |
32 | * Delay dequeueing tasks until they get selected or woken. | |
33 | * | |
34 | * By delaying the dequeue for non-eligible tasks, they remain in the | |
35 | * competition and can burn off their negative lag. When they get selected | |
36 | * they'll have positive lag by definition. | |
37 | */ | |
38 | SCHED_FEAT(DELAY_DEQUEUE, true) | |
39 | ||
8ed92e51 IM |
40 | /* |
41 | * Allow wakeup-time preemption of the current task: | |
42 | */ | |
43 | SCHED_FEAT(WAKEUP_PREEMPTION, true) | |
44 | ||
f8b6d1cc | 45 | SCHED_FEAT(HRTICK, false) |
e0ee463c | 46 | SCHED_FEAT(HRTICK_DL, false) |
f8b6d1cc | 47 | SCHED_FEAT(DOUBLE_TICK, false) |
e26af0e8 | 48 | |
aa483808 | 49 | /* |
5d4dfddd | 50 | * Decrement CPU capacity based on time not spent running tasks |
aa483808 | 51 | */ |
5d4dfddd | 52 | SCHED_FEAT(NONTASK_CAPACITY, true) |
317f3941 | 53 | |
539fbb5b TG |
54 | #ifdef CONFIG_PREEMPT_RT |
55 | SCHED_FEAT(TTWU_QUEUE, false) | |
56 | #else | |
57 | ||
317f3941 PZ |
58 | /* |
59 | * Queue remote wakeups on the target CPU and process them | |
60 | * using the scheduler IPI. Reduces rq->lock contention/bounces. | |
61 | */ | |
f8b6d1cc | 62 | SCHED_FEAT(TTWU_QUEUE, true) |
539fbb5b | 63 | #endif |
e3589f6c | 64 | |
4c77b18c PZ |
65 | /* |
66 | * When doing wakeups, attempt to limit superfluous scans of the LLC domain. | |
67 | */ | |
70fb5ccf | 68 | SCHED_FEAT(SIS_UTIL, true) |
4c77b18c | 69 | |
26ae58d2 PZ |
70 | /* |
71 | * Issue a WARN when we do multiple update_rq_clock() calls | |
72 | * in a single rq->lock section. Default disabled because the | |
73 | * annotations are not complete. | |
74 | */ | |
75 | SCHED_FEAT(WARN_DOUBLE_CLOCK, false) | |
76 | ||
b6366f04 SR |
77 | #ifdef HAVE_RT_PUSH_IPI |
78 | /* | |
79 | * In order to avoid a thundering herd attack of CPUs that are | |
80 | * lowering their priorities at the same time, and there being | |
81 | * a single CPU that has an RT task that can migrate and is waiting | |
82 | * to run, where the other CPUs will try to take that CPUs | |
83 | * rq lock and possibly create a large contention, sending an | |
84 | * IPI to that CPU and let that CPU push the RT task to where | |
85 | * it should go may be a better scenario. | |
86 | */ | |
87 | SCHED_FEAT(RT_PUSH_IPI, true) | |
88 | #endif | |
89 | ||
2586af1a | 90 | SCHED_FEAT(RT_RUNTIME_SHARE, false) |
eb95308e | 91 | SCHED_FEAT(LB_MIN, false) |
a9280514 PZ |
92 | SCHED_FEAT(ATTACH_AGE_LOAD, true) |
93 | ||
d153b153 | 94 | SCHED_FEAT(WA_IDLE, true) |
f2cdd9cc PZ |
95 | SCHED_FEAT(WA_WEIGHT, true) |
96 | SCHED_FEAT(WA_BIAS, true) | |
7f65ea42 PB |
97 | |
98 | /* | |
99 | * UtilEstimation. Use estimated CPU utilization. | |
100 | */ | |
d519329f | 101 | SCHED_FEAT(UTIL_EST, true) |
0c2de3f0 | 102 | |
c006fac5 | 103 | SCHED_FEAT(LATENCY_WARN, false) |