All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH v2 0/8] SCHED_DEADLINE freq/cpu invariance and OPP selection
@ 2017-12-04 10:23 Juri Lelli
  2017-12-04 10:23 ` [RFC PATCH v2 1/8] sched/cpufreq_schedutil: make use of DEADLINE utilization signal Juri Lelli
                   ` (7 more replies)
  0 siblings, 8 replies; 27+ messages in thread
From: Juri Lelli @ 2017-12-04 10:23 UTC (permalink / raw)
  To: peterz, mingo, rjw, viresh.kumar
  Cc: linux-kernel, linux-pm, tglx, vincent.guittot, rostedt,
	luca.abeni, claudio, tommaso.cucinotta, bristot, mathieu.poirier,
	tkjos, joelaf, morten.rasmussen, dietmar.eggemann,
	patrick.bellasi, alessio.balsini, juri.lelli

Hi,

v2 of the RFC set implementing frequency/cpu invariance and OPP selection for
SCHED_DEADLINE [1]. The set is based on mainline as of today (ae64f9bd1d36).

Patches high level description:

 o [01-02]/08 add the necessary links to start accounting DEADLINE contribution
              to OPP selection 
 o 03/08      it's a temporary solution to make possible (on ARM) to change
              frequency for DEADLINE tasks (that would possibly delay the SCHED_FIFO
              worker kthread); proper solution would be to be able to issue frequency
              transition from an atomic ctx
 o [04-05]/08 it's a schedutil change that copes with the fact that DEADLINE
              doesn't require periodic OPP selection triggering point
 o [06-07]/08 make arch_scale_{freq,cpu}_capacity() function available on !CONFIG_SMP
              configurations too
 o 08/08      implements frequency/cpu invariance for tasks' reservation
              parameters; which basically means that we implement GRUB-PA [2]

Changes w.r.t. RFCv1:

 - rebase on mainline
 - return -EINVAL for user trying to use the new flag (Peter)
 - s/SPECIAL/SUGOV/ in the flag name (several comments from people to
   find better naming, Steve thinks SUGOV is more greppable than others)
 - give worker kthread a fake (unused) bandwidth, so that if priority
   inheritance is triggered we don't BUG_ON on zero runtime
 - filter out fake bandwidth when computing SCHED_DEADLINE bandwidth (fix by
   Claudio Scordino)

Please have a look. Feedback and comments are, as usual, more than welcome.

In case you would like to test this out:

 https://github.com/jlelli/linux.git upstream/deadline/freq-rfc-v2

Best,

- Juri

[1] v0: https://lkml.org/lkml/2017/5/23/249
    v1: https://lkml.org/lkml/2017/7/5/139
[2] C. Scordino, G. Lipari, A Resource Reservation Algorithm for
    Power-Aware Scheduling of Periodic and Aperiodic Real-Time Tasks,
    IEEE Transactions on Computers, December 2006

Juri Lelli (8):
  sched/cpufreq_schedutil: make use of DEADLINE utilization signal
  sched/deadline: move cpu frequency selection triggering points
  sched/cpufreq_schedutil: make worker kthread be SCHED_DEADLINE
  sched/cpufreq_schedutil: split utilization signals
  sched/cpufreq_schedutil: always consider all CPUs when deciding next
    freq
  sched/sched.h: remove sd arch_scale_freq_capacity parameter
  sched/sched.h: move arch_scale_{freq,cpu}_capacity outside CONFIG_SMP
  sched/deadline: make bandwidth enforcement scale-invariant

 include/linux/arch_topology.h    |   2 +-
 include/linux/sched.h            |   1 +
 include/linux/sched/cpufreq.h    |   2 -
 include/linux/sched/topology.h   |  12 ++--
 kernel/sched/core.c              |  15 ++++-
 kernel/sched/cpufreq_schedutil.c |  84 +++++++++++++++---------
 kernel/sched/deadline.c          | 136 ++++++++++++++++++++++++++++-----------
 kernel/sched/fair.c              |   4 +-
 kernel/sched/sched.h             |  53 +++++++++++----
 9 files changed, 217 insertions(+), 92 deletions(-)

-- 
2.14.3

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

end of thread, other threads:[~2018-01-10 12:29 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-04 10:23 [RFC PATCH v2 0/8] SCHED_DEADLINE freq/cpu invariance and OPP selection Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 1/8] sched/cpufreq_schedutil: make use of DEADLINE utilization signal Juri Lelli
2017-12-05 15:09   ` Patrick Bellasi
2017-12-05 15:24     ` Juri Lelli
2017-12-05 16:34       ` Patrick Bellasi
2017-12-05 16:40         ` Juri Lelli
2017-12-20 12:51         ` Peter Zijlstra
2018-01-10 12:17   ` [tip:sched/core] sched/cpufreq: Use the " tip-bot for Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 2/8] sched/deadline: move cpu frequency selection triggering points Juri Lelli
2018-01-10 12:18   ` [tip:sched/core] sched/deadline: Move CPU " tip-bot for Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 3/8] sched/cpufreq_schedutil: make worker kthread be SCHED_DEADLINE Juri Lelli
2017-12-05 11:55   ` Patrick Bellasi
2017-12-05 12:34     ` Juri Lelli
2017-12-20 12:57       ` Peter Zijlstra
2018-01-10 12:18   ` [tip:sched/core] sched/cpufreq: Change the worker kthread to SCHED_DEADLINE tip-bot for Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 4/8] sched/cpufreq_schedutil: split utilization signals Juri Lelli
2017-12-05 15:17   ` Patrick Bellasi
2017-12-05 15:26     ` Juri Lelli
2018-01-10 12:19   ` [tip:sched/core] sched/cpufreq: Split " tip-bot for Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 5/8] sched/cpufreq_schedutil: always consider all CPUs when deciding next freq Juri Lelli
2018-01-10 12:19   ` [tip:sched/core] sched/cpufreq: Always " tip-bot for Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 6/8] sched/sched.h: remove sd arch_scale_freq_capacity parameter Juri Lelli
2018-01-10 12:19   ` [tip:sched/core] sched/cpufreq: Remove arch_scale_freq_capacity()'s 'sd' parameter tip-bot for Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 7/8] sched/sched.h: move arch_scale_{freq,cpu}_capacity outside CONFIG_SMP Juri Lelli
2018-01-10 12:20   ` [tip:sched/core] sched/cpufreq: Move arch_scale_{freq,cpu}_capacity() outside of #ifdef CONFIG_SMP tip-bot for Juri Lelli
2017-12-04 10:23 ` [RFC PATCH v2 8/8] sched/deadline: make bandwidth enforcement scale-invariant Juri Lelli
2018-01-10 12:20   ` [tip:sched/core] sched/deadline: Make " tip-bot for Juri Lelli

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.