diff options
author | Morten Rasmussen <morten.rasmussen@arm.com> | 2015-07-17 14:31:08 +0100 |
---|---|---|
committer | Juri Lelli <juri.lelli@arm.com> | 2015-10-05 12:10:09 +0100 |
commit | 34e5ab5f85b3bebe34a617672790c68c3a55449b (patch) | |
tree | a5fa1e8658638ec1a429ed533e67291a58b3263e /kernel/sched/sched.h | |
parent | b68d8d477a9797196e2a91f763df17f849535ffe (diff) | |
download | linux-linaro-stable-34e5ab5f85b3bebe34a617672790c68c3a55449b.tar.gz |
WIP: sched: Add per-cpu max capacity to sched_group_capacity
struct sched_group_capacity currently represents the compute capacity
sum of all cpus in the sched_group. Unless it is divided by the
group_weight to get the average capacity per cpu it hides differences in
cpu capacity for mixed capacity systems (e.g. high RT/IRQ utilization or
ARM big.LITTLE). But even the average may not be sufficient if the group
covers cpus of different capacities. Instead, by extending struct
sched_group_capacity to indicate max per-cpu capacity in the group a
suitable group for a given task utilization can easily be found such
that cpus with reduced capacity can be avoided for tasks with high
utilization (not implemented by this patch).
Change-Id: I3ad0e6df855b1a184db05cb310e91e1e03061467
Signed-off-by: Morten Rasmussen <morten.rasmussen@arm.com>
Diffstat (limited to 'kernel/sched/sched.h')
-rw-r--r-- | kernel/sched/sched.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index e3a2d62538a9..a26aa7fd6241 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -771,7 +771,8 @@ struct sched_group_capacity { * CPU capacity of this group, SCHED_LOAD_SCALE being max capacity * for a single CPU. */ - unsigned int capacity; + unsigned long capacity; + unsigned long max_capacity; /* Max per-cpu capacity in group */ unsigned long next_update; int imbalance; /* XXX unrelated to capacity but shared group state */ /* |