xref: /openbmc/linux/kernel/sched/features.h (revision 95e9fd10)
1 /*
2  * Only give sleepers 50% of their service deficit. This allows
3  * them to run sooner, but does not allow tons of sleepers to
4  * rip the spread apart.
5  */
6 SCHED_FEAT(GENTLE_FAIR_SLEEPERS, true)
7 
8 /*
9  * Place new tasks ahead so that they do not starve already running
10  * tasks
11  */
12 SCHED_FEAT(START_DEBIT, true)
13 
14 /*
15  * Based on load and program behaviour, see if it makes sense to place
16  * a newly woken task on the same cpu as the task that woke it --
17  * improve cache locality. Typically used with SYNC wakeups as
18  * generated by pipes and the like, see also SYNC_WAKEUPS.
19  */
20 SCHED_FEAT(AFFINE_WAKEUPS, true)
21 
22 /*
23  * Prefer to schedule the task we woke last (assuming it failed
24  * wakeup-preemption), since its likely going to consume data we
25  * touched, increases cache locality.
26  */
27 SCHED_FEAT(NEXT_BUDDY, false)
28 
29 /*
30  * Prefer to schedule the task that ran last (when we did
31  * wake-preempt) as that likely will touch the same data, increases
32  * cache locality.
33  */
34 SCHED_FEAT(LAST_BUDDY, true)
35 
36 /*
37  * Consider buddies to be cache hot, decreases the likelyness of a
38  * cache buddy being migrated away, increases cache locality.
39  */
40 SCHED_FEAT(CACHE_HOT_BUDDY, true)
41 
42 /*
43  * Use arch dependent cpu power functions
44  */
45 SCHED_FEAT(ARCH_POWER, false)
46 
47 SCHED_FEAT(HRTICK, false)
48 SCHED_FEAT(DOUBLE_TICK, false)
49 SCHED_FEAT(LB_BIAS, true)
50 
51 /*
52  * Spin-wait on mutex acquisition when the mutex owner is running on
53  * another cpu -- assumes that when the owner is running, it will soon
54  * release the lock. Decreases scheduling overhead.
55  */
56 SCHED_FEAT(OWNER_SPIN, true)
57 
58 /*
59  * Decrement CPU power based on time not spent running tasks
60  */
61 SCHED_FEAT(NONTASK_POWER, true)
62 
63 /*
64  * Queue remote wakeups on the target CPU and process them
65  * using the scheduler IPI. Reduces rq->lock contention/bounces.
66  */
67 SCHED_FEAT(TTWU_QUEUE, true)
68 
69 SCHED_FEAT(FORCE_SD_OVERLAP, false)
70 SCHED_FEAT(RT_RUNTIME_SHARE, true)
71 SCHED_FEAT(LB_MIN, false)
72