All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] cpufreq: schedutil: fixes for flags updates
@ 2017-03-02 15:45 Patrick Bellasi
  2017-03-02 15:45 ` [PATCH 1/6] cpufreq: schedutil: reset sg_cpus's flags at IDLE enter Patrick Bellasi
                   ` (6 more replies)
  0 siblings, 7 replies; 32+ messages in thread
From: Patrick Bellasi @ 2017-03-02 15:45 UTC (permalink / raw)
  To: linux-kernel, linux-pm, Ingo Molnar, Peter Zijlstra, Rafael J . Wysocki
  Cc: Patrick Bellasi, Viresh Kumar, Steven Rostedt, Vincent Guittot,
	John Stultz, Juri Lelli, Todd Kjos, Tim Murray, Andres Oportus,
	Joel Fernandes, Morten Rasmussen, Dietmar Eggemann,
	Chris Redpath

The current version of schedutil has some issues related to the management
of update flags used by systems with frequency domains spawning multiple CPUs.

Each time a CPU utilisation update is issued by the scheduler a set of flags
are configured to define (mainly) which class is asking for a utilisation
update. These flags are then used by the frequency selection policy to
identify the OPP to choose.

In the current implementation, CPU flags are overridden each time the
scheduler calls schedutil for an update. Such a behaviour produces issues
in these scenarios, where we assume CPU1 and CPU2 share the same frequency
domain:
a) a RT task which executed on CPU1 can keep the domain at an high frequency
   for a long period of time, even if there are no longer RT tasks on
   CPUs in that domain
b) a FAIR task co-scheduled in the same CPU of a RT task can override the
   flags configured by the RT task and potentially this can cause an
   unwanted frequency drop

These misbehaviours have been verified using a set of simple rt-app based
synthetic workloads, running on a ARM's Juno board, and results are
available in this Notebook [1].

This series proposes a set of fixes for the aforementioned issues as well
as a small improvement to speedup the selection of the maximum frequency
when RT tasks enter a CPU.

This series is based on top of today's tip/sched/core and is public available
from this repository:

  git://www.linux-arm.com/linux-pb eas/schedutil/flags_fixes

Cheers Patrick

[1] https://gist.github.com/d6a21b459a18091b2b058668a550010d

Patrick Bellasi (6):
  cpufreq: schedutil: reset sg_cpus's flags at IDLE enter
  cpufreq: schedutil: ignore the sugov kthread for frequencies
    selections
  cpufreq: schedutil: ensure max frequency while running RT/DL tasks
  cpufreq: schedutil: relax rate-limiting while running RT/DL tasks
  cpufreq: schedutil: avoid utilisation update when not necessary
  sched/rt: fast switch to maximum frequency when RT tasks are scheduled

 include/linux/sched.h            |  1 +
 kernel/sched/cpufreq_schedutil.c | 59 ++++++++++++++++++++++++++++++++++------
 kernel/sched/idle_task.c         |  4 +++
 kernel/sched/rt.c                | 15 ++++++++--
 4 files changed, 68 insertions(+), 11 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2017-06-06 18:03 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-02 15:45 [PATCH 0/6] cpufreq: schedutil: fixes for flags updates Patrick Bellasi
2017-03-02 15:45 ` [PATCH 1/6] cpufreq: schedutil: reset sg_cpus's flags at IDLE enter Patrick Bellasi
2017-03-03  3:41   ` Viresh Kumar
2017-03-06 14:29     ` Steven Rostedt
2017-03-15 18:06       ` Patrick Bellasi
2017-03-28 22:18   ` Rafael J. Wysocki
2017-04-07 14:59     ` Patrick Bellasi
2017-06-06  9:26   ` Viresh Kumar
2017-06-06 15:56     ` Rafael J. Wysocki
2017-06-06 18:03       ` Patrick Bellasi
2017-03-02 15:45 ` [PATCH 2/6] cpufreq: schedutil: ignore the sugov kthread for frequencies selections Patrick Bellasi
2017-03-03  5:19   ` Viresh Kumar
2017-03-03 12:12     ` Patrick Bellasi
2017-03-06  5:08       ` Viresh Kumar
2017-03-06 14:35   ` Steven Rostedt
2017-03-15 18:02     ` Patrick Bellasi
2017-03-02 15:45 ` [PATCH 3/6] cpufreq: schedutil: ensure max frequency while running RT/DL tasks Patrick Bellasi
2017-03-03  8:31   ` Viresh Kumar
2017-03-03 12:38     ` Patrick Bellasi
2017-03-15 11:52       ` Rafael J. Wysocki
2017-03-15 14:40         ` Patrick Bellasi
2017-03-15 23:32           ` Rafael J. Wysocki
2017-03-15 23:32             ` Rafael J. Wysocki
2017-03-17 11:36             ` Patrick Bellasi
2017-03-17 11:36               ` Patrick Bellasi
2017-04-07 15:30   ` Peter Zijlstra
2017-04-07 16:59     ` Patrick Bellasi
2017-03-02 15:45 ` [PATCH 4/6] cpufreq: schedutil: relax rate-limiting " Patrick Bellasi
2017-03-02 15:45 ` [PATCH 5/6] cpufreq: schedutil: avoid utilisation update when not necessary Patrick Bellasi
2017-03-02 15:45 ` [PATCH 6/6] sched/rt: fast switch to maximum frequency when RT tasks are scheduled Patrick Bellasi
2017-03-02 16:09 ` [PATCH 0/6] cpufreq: schedutil: fixes for flags updates Vincent Guittot
2017-03-02 17:11   ` Patrick Bellasi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.