Hi Tixy,
These patches are mine and Olivier's, can you tell me what your config is to see even a 90s boot? I haven't noticed any boot-time extension on my system, but I'm booting from the A15 cluster. I'd like to reproduce your system here.
The build error is my mistake, I need to know which CPU a task is on and it looks like I have missed a dependency when I've changed the calling code. I will sort out a patch for that asap.
Best Regards, Chris
-----Original Message----- From: Jon Medhurst (Tixy) [mailto:tixy@linaro.org] Sent: 19 November 2012 15:41 To: Viresh Kumar Cc: Andrey Konovalov; PDSW-power-team; Lists linaro-dev Subject: Re: [GIT PULL]; big LITTLE MP master v12
On Sun, 2012-11-18 at 10:40 +0530, Viresh Kumar wrote:
Hi Andrey,
Please pull big-LITTLE-MP-master-v12 with following updates:
- Based on v3.7-rc5 - Stats: - Total Patches: 62 - New Patches: 1 - genirq: Add default affinity mask command line option in
misc-patches branch - top 3 patches in: sched-pack-small-tasks-v1 - top 2 patches in: task-placement-v2 - additional patch in: config-fragments - Dropped patches/branches (as they are managed in experimental merge branch): 20 - patches in per-entity-load-tracking-with-core-sched-v1: 15 - Updated Patches: 0
This version increases Android boot time by a factor of 3, from 91 seconds to 257 seconds, this is comparing it with the version of the master-v12 branch created on Nov 15th. Looking at the differences in the code, one obvious thing which stands out is big-LITTLE-MP.conf now has:
CONFIG_HMP_VARIABLE_SCALE=y CONFIG_HMP_FREQUENCY_INVARIANT_SCALE=y
If I remove this then boot time goes back to 90 seconds.
Also, if I build without big-LITTLE-MP.conf the I get a build error:
kernel/sched/fair.c: In function 'update_entity_load_avg': kernel/sched/fair.c:1469:26: error: 'struct sched_entity' has no member named 'cfs_rq'
-- Tixy
---------------------x--------------------------x--------------------
The following changes since commit
77b67063bb6bce6d475e910d3b886a606d0d91f7:
Linux 3.7-rc5 (2012-11-11 13:44:33 +0100)
are available in the git repository at:
git://git.linaro.org/arm/big.LITTLE/mp.git big-LITTLE-MP-master-v12
for you to fetch changes up to
f942092bd1008de7379b4a52d38dc03de5949fc8:
Merge branches 'arm-multi_pmu_v2', 'hw-bkp-v7.1-debug-v1', 'task-placement-v2', 'misc-patches', 'config-fragments' and 'sched-pack-small-tasks-v1' into big-LITTLE-MP-master-v12-v2 (2012-11-17 09:29:41 +0530)
Ben Segall (1): sched: Maintain per-rq runnable averages
Chris Redpath (1): ARM: Experimental Frequency-Invariant Load Scaling Patch
Dietmar Eggemann (1): ARM: hw_breakpoint: v7.1 self-hosted debug powerdown support
Jon Medhurst (1): ARM: sched: Avoid empty 'slow' HMP domain
Liviu Dudau (2): Revert "sched: secure access to other CPU statistics" linaro/configs: big-LITTLE-MP: Enable the new tunable sysfs interface by default.
Lorenzo Pieralisi (1): ARM: kernel: provide cluster to logical cpu mask mapping API
Marc Zyngier (1): ARM: perf: add guest vs host discrimination
Mark Rutland (1): ARM: perf: register cpu_notifier at driver init
Morten Rasmussen (15): sched: entity load-tracking load_avg_ratio sched: Task placement for heterogeneous systems based on task load-tracking sched: Forced task migration on heterogeneous systems sched: Introduce priority-based task migration filter ARM: Add HMP scheduling support for ARM architecture ARM: sched: Use device-tree to provide fast/slow CPU list for
HMP
ARM: sched: Setup SCHED_HMP domains sched: Add ftrace events for entity load-tracking sched: Add HMP task migration ftrace event sched: SCHED_HMP multi-domain task migration control sched: Enable HMP priority filter by default sched: Only down migrate low priority tasks if allowed by
affinity mask
linaro/configs: Enable HMP priority filter by default sched: SD_SHARE_POWERLINE buddy selection fix ARM: TC2: Re-enable SD_SHARE_POWERLINE
Olivier Cozette (1): ARM: Change load tracking scale using sysfs
Paul Turner (15): sched: Track the runnable average on a per-task entity basis sched: Aggregate load contributed by task entities on parenting
cfs_rq
sched: Maintain the load contribution of blocked entities sched: Add an rq migration call-back to sched_class sched: Account for blocked load waking back up sched: Aggregate total task_group load sched: Compute load contribution by a group entity sched: Normalize tg load contributions against runnable time sched: Maintain runnable averages across throttled periods sched: Replace update_shares weight distribution with per-
entity
computation sched: Refactor update_shares_cpu() -> update_blocked_avgs() sched: Update_cfs_shares at period edge sched: Make __update_entity_runnable_avg() fast sched: Introduce temporary FAIR_GROUP_SCHED dependency for
load-tracking
sched: implement usage tracking
Peter Zijlstra (1): sched: Describe CFS load-balancer
Sudeep KarkadaNagesha (9): ARM: perf: allocate CPU PMU dynamically at probe time ARM: perf: consistently use struct perf_event in arm_pmu
functions
ARM: perf: check ARMv7 counter validity on a per-pmu basis ARM: perf: replace global CPU PMU pointer with per-cpu pointers ARM: perf: register CPU PMUs with idr types ARM: perf: set cpu affinity to support multiple PMUs ARM: perf: set cpu affinity for the irqs correctly ARM: perf: remove spaces in CPU PMU names ARM: perf: save/restore pmu registers in pm notifier
Thomas Gleixner (1): genirq: Add default affinity mask command line option
Vincent Guittot (5): sched: add a new SD SHARE_POWERLINE flag for sched_domain sched: pack small tasks sched: secure access to other CPU statistics sched: pack the idle load balance ARM: sched: clear SD_SHARE_POWERLINE
Viresh Kumar (5): Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking" configs: Add config fragments for big LITTLE MP linaro/configs: Update big LITTLE MP fragment for task
placement work
config-frag/big-LITTLE: Use device-tree to provide fast/slow
CPU
list for HMP Merge branches 'arm-multi_pmu_v2', 'hw-bkp-v7.1-debug-v1', 'task-placement-v2', 'misc-patches', 'config-fragments' and 'sched-pack-small-tasks-v1' into big-LITTLE-MP-master-v12-v2
Will Deacon (2): ARM: perf: return NOTIFY_DONE from cpu notifier when no
available PMU
ARM: perf: consistently use arm_pmu->name for PMU name
Documentation/devicetree/bindings/arm/pmu.txt | 3 + Documentation/kernel-parameters.txt | 9 + arch/arm/Kconfig | 85 ++ arch/arm/include/asm/perf_event.h | 5 + arch/arm/include/asm/pmu.h | 40 +- arch/arm/include/asm/topology.h | 34 + arch/arm/kernel/hw_breakpoint.c | 57 + arch/arm/kernel/perf_event.c | 103 +- arch/arm/kernel/perf_event_cpu.c | 169 ++- arch/arm/kernel/perf_event_v6.c | 130 +- arch/arm/kernel/perf_event_v7.c | 295 ++-- arch/arm/kernel/perf_event_xscale.c | 161 +- arch/arm/kernel/topology.c | 125 ++ arch/ia64/include/asm/topology.h | 1 + arch/tile/include/asm/topology.h | 1 + include/linux/sched.h | 29 + include/linux/topology.h | 3 + include/trace/events/sched.h | 153 ++ kernel/irq/irqdesc.c | 21 +- kernel/sched/core.c | 16 + kernel/sched/debug.c | 39 +- kernel/sched/fair.c | 1942
++++++++++++++++++++++---
kernel/sched/sched.h | 65 +- linaro/configs/big-LITTLE-MP.conf | 13 + 24 files changed, 2943 insertions(+), 556 deletions(-) create mode 100644 linaro/configs/big-LITTLE-MP.conf
linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.