Skip to content

Commit e4cbce4

Browse files
committed
Merge tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler updates from Ingo Molnar: - Improve uclamp performance by using a static key for the fast path - Add the "sched_util_clamp_min_rt_default" sysctl, to optimize for better power efficiency of RT tasks on battery powered devices. (The default is to maximize performance & reduce RT latencies.) - Improve utime and stime tracking accuracy, which had a fixed boundary of error, which created larger and larger relative errors as the values become larger. This is now replaced with more precise arithmetics, using the new mul_u64_u64_div_u64() helper in math64.h. - Improve the deadline scheduler, such as making it capacity aware - Improve frequency-invariant scheduling - Misc cleanups in energy/power aware scheduling - Add sched_update_nr_running tracepoint to track changes to nr_running - Documentation additions and updates - Misc cleanups and smaller fixes * tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits) sched/doc: Factorize bits between sched-energy.rst & sched-capacity.rst sched/doc: Document capacity aware scheduling sched: Document arch_scale_*_capacity() arm, arm64: Fix selection of CONFIG_SCHED_THERMAL_PRESSURE Documentation/sysctl: Document uclamp sysctl knobs sched/uclamp: Add a new sysctl to control RT default boost value sched/uclamp: Fix a deadlock when enabling uclamp static key sched: Remove duplicated tick_nohz_full_enabled() check sched: Fix a typo in a comment sched/uclamp: Remove unnecessary mutex_init() arm, arm64: Select CONFIG_SCHED_THERMAL_PRESSURE sched: Cleanup SCHED_THERMAL_PRESSURE kconfig entry arch_topology, sched/core: Cleanup thermal pressure definition trace/events/sched.h: fix duplicated word linux/sched/mm.h: drop duplicated words in comments smp: Fix a potential usage of stale nr_cpus sched/fair: update_pick_idlest() Select group with lowest group_util when idle_cpus are equal sched: nohz: stop passing around unused "ticks" parameter. sched: Better document ttwu() sched: Add a tracepoint to track rq->nr_running ...
2 parents b34133f + 949bcb8 commit e4cbce4

Some content is hidden

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

48 files changed

+1521
-332
lines changed

Documentation/admin-guide/sysctl/kernel.rst

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,6 +1062,60 @@ Enables/disables scheduler statistics. Enabling this feature
10621062
incurs a small amount of overhead in the scheduler but is
10631063
useful for debugging and performance tuning.
10641064

1065+
sched_util_clamp_min:
1066+
=====================
1067+
1068+
Max allowed *minimum* utilization.
1069+
1070+
Default value is 1024, which is the maximum possible value.
1071+
1072+
It means that any requested uclamp.min value cannot be greater than
1073+
sched_util_clamp_min, i.e., it is restricted to the range
1074+
[0:sched_util_clamp_min].
1075+
1076+
sched_util_clamp_max:
1077+
=====================
1078+
1079+
Max allowed *maximum* utilization.
1080+
1081+
Default value is 1024, which is the maximum possible value.
1082+
1083+
It means that any requested uclamp.max value cannot be greater than
1084+
sched_util_clamp_max, i.e., it is restricted to the range
1085+
[0:sched_util_clamp_max].
1086+
1087+
sched_util_clamp_min_rt_default:
1088+
================================
1089+
1090+
By default Linux is tuned for performance. Which means that RT tasks always run
1091+
at the highest frequency and most capable (highest capacity) CPU (in
1092+
heterogeneous systems).
1093+
1094+
Uclamp achieves this by setting the requested uclamp.min of all RT tasks to
1095+
1024 by default, which effectively boosts the tasks to run at the highest
1096+
frequency and biases them to run on the biggest CPU.
1097+
1098+
This knob allows admins to change the default behavior when uclamp is being
1099+
used. In battery powered devices particularly, running at the maximum
1100+
capacity and frequency will increase energy consumption and shorten the battery
1101+
life.
1102+
1103+
This knob is only effective for RT tasks which the user hasn't modified their
1104+
requested uclamp.min value via sched_setattr() syscall.
1105+
1106+
This knob will not escape the range constraint imposed by sched_util_clamp_min
1107+
defined above.
1108+
1109+
For example if
1110+
1111+
sched_util_clamp_min_rt_default = 800
1112+
sched_util_clamp_min = 600
1113+
1114+
Then the boost will be clamped to 600 because 800 is outside of the permissible
1115+
range of [0:600]. This could happen for instance if a powersave mode will
1116+
restrict all boosts temporarily by modifying sched_util_clamp_min. As soon as
1117+
this restriction is lifted, the requested sched_util_clamp_min_rt_default
1118+
will take effect.
10651119

10661120
seccomp
10671121
=======

Documentation/scheduler/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Linux Scheduler
1212
sched-deadline
1313
sched-design-CFS
1414
sched-domains
15+
sched-capacity
1516
sched-energy
1617
sched-nice-design
1718
sched-rt-group

0 commit comments

Comments
 (0)