Joel Fernandes (Google)
152db033d7
schedutil: Allow cpufreq requests to be made even when kthread kicked
...
Currently there is a chance of a schedutil cpufreq update request to be
dropped if there is a pending update request. This pending request can
be delayed if there is a scheduling delay of the irq_work and the wake
up of the schedutil governor kthread.
A very bad scenario is when a schedutil request was already just made,
such as to reduce the CPU frequency, then a newer request to increase
CPU frequency (even sched deadline urgent frequency increase requests)
can be dropped, even though the rate limits suggest that its Ok to
process a request. This is because of the way the work_in_progress flag
is used.
This patch improves the situation by allowing new requests to happen
even though the old one is still being processed. Note that in this
approach, if an irq_work was already issued, we just update next_freq
and don't bother to queue another request so there's no extra work being
done to make this happen.
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Juri Lelli <juri.lelli@redhat.com>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2018-05-23 10:37:56 +02:00
..
autogroup.c
sched/autogroup: Fix possible Spectre-v1 indexing for sched_prio_to_weight[]
2018-05-05 08:34:42 +02:00
autogroup.h
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
clock.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
completion.c
sched/completions: Use bool in try_wait_for_completion()
2018-03-09 08:00:18 +01:00
core.c
sched/core: Fix possible Spectre-v1 indexing for sched_prio_to_weight[]
2018-05-05 08:32:36 +02:00
cpuacct.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpudeadline.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpudeadline.h
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpufreq.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpufreq_schedutil.c
schedutil: Allow cpufreq requests to be made even when kthread kicked
2018-05-23 10:37:56 +02:00
cpupri.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cpupri.h
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
cputime.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
deadline.c
sched/core: Simplify helpers for rq clock update skip requests
2018-04-05 09:20:46 +02:00
debug.c
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-04-02 11:49:41 -07:00
fair.c
Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-05-13 10:53:08 -07:00
features.h
sched/fair: Update util_est only on util_avg updates
2018-03-20 08:11:09 +01:00
idle.c
sched: idle: Select idle state before stopping the tick
2018-04-09 11:54:07 +02:00
isolation.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
loadavg.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
Makefile
sched/idle: Merge kernel/sched/idle.c and kernel/sched/idle_task.c
2018-03-04 12:39:33 +01:00
membarrier.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
rt.c
sched/core: Simplify helpers for rq clock update skip requests
2018-04-05 09:20:46 +02:00
sched-pelt.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
sched.h
sched/core: Simplify helpers for rq clock update skip requests
2018-04-05 09:20:46 +02:00
stats.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
stats.h
sched: Clean up and harmonize the coding style of the scheduler code base
2018-03-03 15:50:21 +01:00
stop_task.c
sched: Clean up and harmonize the coding style of the scheduler code base
2018-03-03 15:50:21 +01:00
swait.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
topology.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
wait.c
sched/headers: Simplify and clean up header usage in the scheduler
2018-03-04 12:39:29 +01:00
wait_bit.c
sched/wait: Improve __var_waitqueue() code generation
2018-03-20 08:23:25 +01:00