Skip to content

Commit dc80d91

Browse files
committed
Merge branch 'release-4.1.0-lineage' into lineage-16.0-master
* release-4.1.0-lineage: block: Fix BFQ not being built net/wireguard: add wireguard importer defconfig: Enable SOUND_CONTROL and KCAL support msm: mdss: KCAL: disable igc update mdss mdp: kcal for mdss_mdp_v1_7 ASoC: wcd9335: add earpiece and mic gain, prevent headphone reset ASoC: wcd9335: Sound control qpnp-haptic: expose vibrate function sched: Turn on MIN_CAPACITY_CAPPING feature sched/fair: use min capacity when evaluating active cpus sched/fair: use min capacity when evaluating idle backup cpus sched/fair: use min capacity when evaluating placement energy costs sched/fair: introduce minimum capacity capping sched feature sched: add arch_scale_min_freq_capacity to track minimum capacity caps sched/fair: introduce an arch scaling function for max frequency capping FROMLIST: sched: Make iowait_boost optional in schedutil FROMLIST: cpufreq: Make iowait boost a policy option sched: deadline: Add missing WALT code sched/fair: Add bias schedtune boosted tasks sched feature cpu-boost: Create separate tunable for Dynamic Schedtune Boost duration Documentation: scheduler: Add Dynamic SchedTune Boost documentation init: Make DYNAMIC_STUNE_BOOST depend on CGROUP_SCHEDTUNE sched/boost: Update functions for newer Dynamic Schedtune Boost changes cpu-boost: Update functions for newer Dynamic Schedtune Boost changes sched/tune: Switch Dynamic Schedtune Boost to a slot-based tracking system sched/stune: Rename stune_boost() to do_stune_sched_boost() sched/tune: Rename dynamic_boost parameter to sched_boost sched/tune: Track active boosts on a per-Schedtune basis sched/tune: Reset Dynamic Schedtune Boost only if no more boosts running cpu-boost: Reset Dynamic SchedTune Boost only if it is currently active sched/boost: Perform SchedTune boosting when sched_boost is triggered sched/boost: Re-introduce sched_boost proc from HMP sched/tune: Introduce stune_boost() function sched/tune: Refactor do_stune_boost() sched/tune: Create dynamic_boost SchedTune parameter sched/tune: Rename dynamic_boost_write() to dynamic_boost() defconfig: Enable DYNAMIC_STUNE_BOOST cpu-boost: Implement Dynamic SchedTune Boost v3 sched/tune: Add initial support for Dynamic SchedTune Boost schedutil: Don't assume we are likely using PELT sched/fair: Fix issue where frequency update not skipped sched/fair: Skip frequency updates if CPU about to idle sched/fair: Fix throttle_list starvation with low CFS quota ANDROID: restrict store of prefer_idle as boolean sched: EAS: upmigrate misfit current task sched: EAS: kill incorrect nohz idle cpu kick sched/fair: kick nohz idle balance for misfit task sched: Extend active balance to accept 'push_task' argument sched/walt: use do_div instead of division operator sched: WALT: account cumulative window demand defconfig: Disable Interactive cpufreq governor defconfig: Enable SCHED_WALT defconfig: Enable Schedutil cpufreq governor defconfig: Enable Energy Aware Scheduling by default defconfig: Regenerate and remove HMP and core_ctl sched: Add missing WALT code dts: Import msm8998 energy model from Pixel 2 Revert "cpufreq: cpu-boost: Force most/all tasks to big cluster on input event" sched: Add stub function for core_ctl_set_boost sched: Add stub functions for wake_up_idle API sched: Remove HMP scheduling and core_ctl Revert "sched: WALT: account cumulative window demand" defconfig: Import regenerated oneplus5_defconfig Add build.config.default
2 parents fed10a0 + e1d1a04 commit dc80d91

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+3049
-13254
lines changed

Documentation/devicetree/bindings/scheduler/sched_hmp.txt

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
Dynamic SchedTune Boost
2+
3+
===============
4+
1. INTRODUCTION
5+
===============
6+
7+
Dynamic SchedTune Boost (herein referred to as DSB) extends the SchedTune
8+
framework and provides APIs to activate and reset SchedTune boosting.
9+
10+
DSB effectively handles multiple concurrent boost requests for each SchedTune
11+
group. For a particular SchedTune group, its overall boost value will be the
12+
maximum boost value of all its ongoing concurrent boost requests.
13+
14+
A slot-based system is used to keep track of all boost requests that have been
15+
made. The number of boost slots available for each SchedTune group is defined
16+
by 'DYNAMIC_BOOST_SLOTS_COUNT'. Please see the example further below for details
17+
on how multiple boost requests are handled by the slot-based system.
18+
19+
It is important that every boost request must be reset when no longer needed,
20+
otherwise the SchedTune group will remain in a permanently boosted state.
21+
It is up to the developer to implement this properly.
22+
23+
24+
======
25+
2. API
26+
======
27+
28+
int do_stune_boost(char *st_name, int boost, int *slot);
29+
30+
Boost 'st_name' SchedTune cgroup to the given 'boost' value. A slot is
31+
assigned for this new boost request. Returns 0 on success.
32+
33+
int do_stune_sched_boost(char *st_name, int *slot);
34+
35+
Boost 'st_name' SchedTune cgroup to the boost value specified in
36+
/dev/stune/{st_name}/schedtune.sched_boost. A slot is assigned for this new
37+
boost request. Returns 0 on success.
38+
39+
int reset_stune_boost(char *st_name, int slot);
40+
41+
Resets the boost request for the specified 'slot' of the 'st_name' SchedTune
42+
group. The default boost value of the 'st_name' SchedTune group will be
43+
restored if there are no more ongoing boost requests. Otherwise, the boost
44+
value will be set to the maximum boost value of the remaining active boost
45+
requests. Returns 0 on success.
46+
47+
48+
==========
49+
3. EXAMPLE
50+
==========
51+
52+
The following example shows how DSB handles three concurrent boost requests for
53+
the 'top-app' SchedTune group.
54+
55+
56+
/*
57+
* [INITIAL STATE]
58+
*
59+
* +---------+
60+
* active_boost_slots | Empty |
61+
* +---------+
62+
* +---------+ +---------+ +---------+ +---------+
63+
* available_boost_slots | Slot 0 | | Slot 1 | | Slot 2 | | Slot 3 |
64+
* +---------+ +---------+ +---------+ +---------+
65+
*
66+
* Current boost value: 0
67+
*/
68+
69+
/*
70+
* Create a slot for each boost request
71+
*/
72+
int slotFirst, slotSecond, slotThird;
73+
74+
75+
do_stune_boost("top-app", 10, &slotFirst);
76+
/*
77+
* [1ST BOOST REQUEST]
78+
*
79+
* +---------+
80+
* | Slot 0 |
81+
* active_boost_slots +---------+
82+
* |boost: 10|
83+
* +---------+
84+
* +---------+ +---------+ +---------+
85+
* available_boost_slots | Slot 1 | | Slot 2 | | Slot 3 |
86+
* +---------+ +---------+ +---------+
87+
*
88+
* Current boost value: 10
89+
*/
90+
91+
92+
do_stune_boost("top-app", 5, &slotSecond);
93+
/*
94+
* [2ND BOOST REQUEST]
95+
*
96+
* +---------+ +---------+
97+
* | Slot 0 | | Slot 1 |
98+
* active_boost_slots +---------+ +---------+
99+
* |boost: 10| |boost: 5 |
100+
* +---------+ +---------+
101+
* +---------+ +---------+
102+
* available_boost_slots | Slot 2 | | Slot 3 |
103+
* +---------+ +---------+
104+
*
105+
* Current boost value: 10
106+
*/
107+
108+
109+
do_stune_boost("top-app", 20, &slotThird);
110+
/*
111+
* [3RD BOOST REQUEST]
112+
*
113+
* +---------+ +---------+ +---------+
114+
* | Slot 0 | | Slot 1 | | Slot 2 |
115+
* active_boost_slots +---------+ +---------+ +---------+
116+
* |boost: 10| |boost: 5 | |boost: 20|
117+
* +---------+ +---------+ +---------+
118+
* +---------+
119+
* available_boost_slots | Slot 3 |
120+
* +---------+
121+
*
122+
* Current boost value: 20
123+
*/
124+
125+
126+
reset_stune_boost("top-app", slotSecond);
127+
/*
128+
* [RESET 2ND BOOST REQUEST]
129+
*
130+
* +---------+ +---------+
131+
* | Slot 0 | | Slot 2 |
132+
* active_boost_slots +---------+ +---------+
133+
* |boost: 10| |boost: 20|
134+
* +---------+ +---------+
135+
* +---------+ +---------+
136+
* available_boost_slots | Slot 3 | | Slot 1 |
137+
* +---------+ +---------+
138+
*
139+
* Current boost value: 20
140+
*/
141+
142+
143+
reset_stune_boost("top-app", slotThird);
144+
/*
145+
* [RESET 3RD BOOST REQUEST]
146+
*
147+
* +---------+
148+
* | Slot 0 |
149+
* active_boost_slots +---------+
150+
* |boost: 10|
151+
* +---------+
152+
* +---------+ +---------+ +---------+
153+
* available_boost_slots | Slot 3 | | Slot 1 | | Slot 2 |
154+
* +---------+ +---------+ +---------+
155+
*
156+
* Current boost value: 10
157+
*/
158+
159+
160+
reset_stune_boost("top-app", slotFirst);
161+
/*
162+
* [RESET 1ST BOOST REQUEST]
163+
*
164+
* +---------+
165+
* active_boost_slots | Empty |
166+
* +---------+
167+
* +---------+ +---------+ +---------+ +---------+
168+
* available_boost_slots | Slot 3 | | Slot 1 | | Slot 2 | | Slot 0 |
169+
* +---------+ +---------+ +---------+ +---------+
170+
*
171+
* Current boost value: 0
172+
*/
173+

0 commit comments

Comments
 (0)