lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1417529192-11579-1-git-send-email-morten.rasmussen@arm.com>
Date:	Tue,  2 Dec 2014 14:06:22 +0000
From:	Morten Rasmussen <morten.rasmussen@....com>
To:	peterz@...radead.org, mingo@...hat.com
Cc:	dietmar.eggemann@....com, vincent.guittot@...aro.org,
	pjt@...gle.com, bsegall@...gle.com, mturquette@...aro.org,
	linux-kernel@...r.kernel.org, linux-pm@...r.kernel.org,
	Morten Rasmussen <morten.rasmussen@....com>
Subject: [RFC PATCH 00/10] sched: frequency and cpu invariant per-entity load-tracking and other load-tracking bits

Numerous proposals for various changes to per-entity load-tracking have
been posted in the past to introduce various forms of scale invariance,
utilization tracking, and taking blocked load into account. This RFC
patch set has attempts to merge the features of these proposals.

The patch set is based on top of Vincent's cpu capacity and usage patch
set [1] which introduces the scheduler side of frequency invariant
utilization tracking. This patch set adds:

Patches:

1: Adds frequency scale invariance to runnable load tracking
(weighted_cpuload() and friends). Like utilization in [1], load is now
also scaled with frequency relative to the max frequency.

2: Adds cpu scale invariance to both load and utilization. This second
scaling compensates for differences in max performance between cpus,
e.g. cpus with different max OPPs or different cpu uarchs (ARM
big.LITTLE).

3-5: ARM arch implementation of arch_scale_freq_capacity() to enable
frequency invariance of both utilization and load.

6: Update ARM arch implementation of arch_scale_cpu_capacity().

7: Remove scaling of cpu usage by capacity_orig. With introduction of
cpu scale-invariance the per-entity tracking already does this scaling.

Experimental patches:

8: Add tracking of blocked utilization (usage) to the utilization
introduced in [1].

9: Change get_cpu_usage() to include blocked utilization (usage).

10: Change weighted_cpuload() to include blocked load. The implications of
this change needs further testing and very likely more changes.


The last three patches are quite likely to cause some trouble and
require some modifications to the users of get_cpu_usage() and
weighted_cpuload(). An audit of the load-balance code is needed. The
blocked load/utilization patches should be considered experimental, but
they are part of what is needed to add invariance and blocked
load/utilization to per-entity load-tracking.

The purpose of this whole exercise is to get more accurate load and
utilization tracking for systems with frequency scaling and/or cpus with
different uarchs.

[1] https://lkml.org/lkml/2014/11/3/535

Dietmar Eggemann (5):
  sched: Make load tracking frequency scale-invariant
  sched: Make usage and load tracking cpu scale-invariant
  ARM: vexpress: Add CPU clock-frequencies to TC2 device-tree
  arm: Cpu invariant scheduler load-tracking support
  sched: Get rid of scaling usage by cpu_capacity_orig

Morten Rasmussen (5):
  cpufreq: Architecture specific callback for frequency changes
  arm: Frequency invariant scheduler load-tracking support
  sched: Track blocked utilization contributions
  sched: Include blocked utilization in usage tracking
  sched: Include blocked load in weighted_cpuload

 arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts |  5 ++
 arch/arm/kernel/topology.c                 | 97 +++++++++++++++++-------------
 drivers/cpufreq/cpufreq.c                  | 10 ++-
 kernel/sched/fair.c                        | 91 ++++++++++++++++++++++------
 kernel/sched/sched.h                       |  8 ++-
 5 files changed, 147 insertions(+), 64 deletions(-)

-- 
1.9.1


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ