Patrick Bellasi
d82457153c
UPSTREAM: sched/fair/util_est: Implement faster ramp-up EWMA on utilization increases
...
The estimated utilization for a task:
util_est = max(util_avg, est.enqueue, est.ewma)
is defined based on:
- util_avg: the PELT defined utilization
- est.enqueued: the util_avg at the end of the last activation
- est.ewma: a exponential moving average on the est.enqueued samples
According to this definition, when a task suddenly changes its bandwidth
requirements from small to big, the EWMA will need to collect multiple
samples before converging up to track the new big utilization.
This slow convergence towards bigger utilization values is not
aligned to the default scheduler behavior, which is to optimize for
performance. Moreover, the est.ewma component fails to compensate for
temporarely utilization drops which spans just few est.enqueued samples.
To let util_est do a better job in the scenario depicted above, change
its definition by making util_est directly follow upward motion and
only decay the est.ewma on downward.
Bug: 120440300
Signed-off-by: Patrick Bellasi <patrick.bellasi@matbug.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Dietmar Eggemann <dietmar.eggemann@arm.com>
Cc: Douglas Raillard <douglas.raillard@arm.com>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Quentin Perret <qperret@google.com>
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20191023205630.14469-1-patrick.bellasi@matbug.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
(cherry picked from commit b8c96361402aa3e74ad48ceef18aed99153d8da8)
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Change-Id: Iaa75dec917748375d9043c3ebf21bf272299c8dd
2020-10-26 12:24:35 +00:00
..
bpf
This is the 5.4.57 stable release
2020-08-07 10:07:58 +02:00
cgroup
This is the 5.4.53 stable release
2020-07-23 12:36:54 +02:00
configs
debug
kgdb: Avoid suspicious RCU usage warning
2020-07-09 09:37:51 +02:00
dma
This is the 5.4.36 stable release
2020-04-29 17:24:24 +02:00
events
This is the 5.4.61 stable release
2020-08-26 11:11:38 +02:00
gcov
kernel/gcov/fs.c: gcov_seq_next() should increase position index
2020-04-29 16:33:00 +02:00
irq
Revert "ANDROID: Revert: Merge 5.4.60 into android11-5.4"
2020-08-23 13:12:51 +02:00
livepatch
ANDROID: kallsyms: increase KSYM_NAME_LEN
2020-08-04 19:33:41 +00:00
locking
ANDROID: rwsem: Add vendor hook to the rw-semaphore
2020-08-20 19:28:23 +00:00
power
ANDROID: power: Export log_{suspend_abort,abnormal_wakeup}_reason
2020-08-25 20:46:53 +00:00
printk
ANDROID: vendor_hooks: Add vendor hooks for getting printk messages
2020-09-14 14:42:20 +00:00
rcu
rcu: Allow only one expedited GP to run concurrently with wakeups
2020-03-05 16:43:50 +01:00
sched
UPSTREAM: sched/fair/util_est: Implement faster ramp-up EWMA on utilization increases
2020-10-26 12:24:35 +00:00
time
ANDROID: GKI: time: Export for nsec_to_clock_t
2020-09-28 18:10:29 +00:00
trace
Revert "tracing: Move pipe reference to trace array instead of current_tracer"
2020-08-23 13:12:53 +02:00
.gitignore
acct.c
async.c
audit.c
audit: fix a net reference leak in audit_list_rules_send()
2020-06-22 09:30:59 +02:00
audit.h
audit: fix a net reference leak in audit_list_rules_send()
2020-06-22 09:30:59 +02:00
audit_fsnotify.c
audit_tree.c
audit_watch.c
audit_get_nd(): don't unlock parent too early
2019-11-10 11:56:55 -05:00
auditfilter.c
audit: fix a net reference leak in audit_list_rules_send()
2020-06-22 09:30:59 +02:00
auditsc.c
backtracetest.c
bounds.c
capability.c
cfi.c
ANDROID: cfi: fix export symbol types
2020-04-29 19:12:47 +02:00
compat.c
configs.c
context_tracking.c
cpu.c
This is the 5.4.48 stable release
2020-06-22 11:43:59 +02:00
cpu_pm.c
kernel/cpu_pm: Fix uninitted local in cpu_pm
2020-06-22 09:31:22 +02:00
crash_core.c
crash_dump.c
cred.c
keys: Fix request_key() cache
2020-01-17 19:48:42 +01:00
delayacct.c
dma.c
elfcore.c
kernel/elfcore.c: include proper prototypes
2019-09-25 17:51:39 -07:00
exec_domain.c
exit.c
exit: Move preemption fixup up, move blocking operations down
2020-06-22 09:31:01 +02:00
extable.c
extable: Add function to search only kernel exception table
2019-08-21 22:23:48 +10:00
fail_function.c
fork.c
FROMGIT: mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
2020-09-15 09:34:00 -07:00
freezer.c
Revert "libata, freezer: avoid block device removal while system is frozen"
2019-10-06 09:11:37 -06:00
futex.c
ANDROID: futex: Add vendor hook for wait queue
2020-08-20 19:30:35 +00:00
gen_kheaders.sh
kheaders: substituting --sort in archive creation
2019-10-17 09:08:19 +09:00
groups.c
hung_task.c
iomem.c
irq_work.c
jump_label.c
jump_label: Don't warn on __exit jump entries
2019-08-29 15:10:10 +01:00
kallsyms.c
ANDROID: kallsyms: ignore ThinLTO+CFI hash suffix in kallsyms_lookup_name()
2020-09-22 20:17:26 +00:00
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
UPSTREAM: kcov: remote coverage support
2020-01-13 18:54:56 +00:00
kexec.c
kexec_load: Disable at runtime if the kernel is locked down
2019-08-19 21:54:15 -07:00
kexec_core.c
kexec: bail out upon SIGKILL when allocating memory.
2019-09-25 17:51:40 -07:00
kexec_elf.c
kexec_elf: support 32 bit ELF files
2019-09-06 23:58:44 +02:00
kexec_file.c
Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2019-09-28 08:14:15 -07:00
kexec_internal.h
kheaders.c
kmod.c
kmod: make request_module() return an error when autoloading is disabled
2020-04-17 10:50:22 +02:00
kprobes.c
Revert "ANDROID: Revert: Merge 5.4.60 into android11-5.4"
2020-08-23 13:12:51 +02:00
ksysfs.c
kthread.c
ANDROID: Disable kthread delayed work fp check in CFI builds
2020-09-29 15:26:34 +00:00
latencytop.c
Makefile
ANDROID: add support for Clang's Control Flow Integrity (CFI)
2019-11-27 12:49:12 -08:00
module-internal.h
module.c
ANDROID: modules: fix suspicious rcu usage
2020-10-22 17:03:51 +00:00
module_signature.c
MODSIGN: Export module signature definitions
2019-08-05 18:39:56 -04:00
module_signing.c
MODSIGN: Export module signature definitions
2019-08-05 18:39:56 -04:00
notifier.c
x86/mm: split vmalloc_sync_all()
2020-03-25 08:25:58 +01:00
nsproxy.c
padata.c
padata: add separate cpuhp node for CPUHP_PADATA_DEAD
2020-06-17 16:40:22 +02:00
panic.c
panic: ensure preemption is disabled during panic()
2019-10-07 15:47:19 -07:00
params.c
lockdown: Lock down module params that specify hardware parameters (eg. ioport)
2019-08-19 21:54:16 -07:00
pid.c
ANDROID: GKI: pid: Export for find_task_by_vpid
2020-09-28 18:10:49 +00:00
pid_namespace.c
profile.c
ptrace.c
ptrace: reintroduce usage of subjective credentials in ptrace_has_cap()
2020-01-23 08:22:36 +01:00
range.c
reboot.c
FROMLIST: reboot: Export reboot_mode
2019-11-25 11:46:31 -08:00
relay.c
kernel/relay.c: fix memleak on destroy relay channel
2020-08-26 10:40:51 +02:00
resource.c
/dev/mem: Revoke mappings when a driver claims the region
2020-06-24 17:50:35 +02:00
rseq.c
scs.c
ANDROID: scs: fix recursive spinlock in scs_check_usage
2020-06-09 08:28:50 +00:00
seccomp.c
seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
2020-08-19 08:15:58 +02:00
signal.c
ANDROID: GKI: signal: Export for __lock_task_sighand
2020-09-28 18:10:21 +00:00
smp.c
smpboot.c
smpboot.h
softirq.c
stackleak.c
stacktrace.c
stacktrace: Don't skip first entry on noncurrent tasks
2019-11-04 21:19:25 +01:00
stop_machine.c
stop_machine: Avoid potential race behaviour
2019-10-17 12:47:12 +02:00
sys.c
Merge Linus's 5.4-rc1-prerelease branch into android-mainline
2019-09-20 16:07:54 -07:00
sys_ni.c
sysctl.c
This is the 5.4.8 stable release
2020-01-04 19:40:03 +01:00
sysctl_binary.c
task_work.c
taskstats.c
taskstats: fix data-race
2020-01-09 10:19:54 +01:00
test_kprobes.c
torture.c
torture: Remove exporting of internal functions
2019-08-01 14:30:22 -07:00
tracepoint.c
tsacct.c
ucount.c
uid16.c
uid16.h
umh.c
umh: fix memory leak on execve failure
2020-05-20 08:20:13 +02:00
up.c
user-return-notifier.c
user.c
Revert "ANDROID: proc: Add /proc/uid directory"
2020-03-06 20:23:08 +00:00
user_namespace.c
utsname.c
utsname_sysctl.c
watchdog.c
watchdog/softlockup: Enforce that timestamp is valid on boot
2020-02-24 08:36:52 +01:00
watchdog_hld.c
workqueue.c
ANDROID: workqueue: add vendor hook for wq lockup information
2020-10-05 10:27:15 +09:00
workqueue_internal.h