Hi Tixy,
I've got your kernel and the JB filesystem modified for USB booting here. There is no boot delay for me - it takes just over 70s from boot monitor to mouse pointer.
Catch you in the morning :)
Chris
-----Original Message----- From: Jon Medhurst (Tixy) [mailto:tixy@linaro.org] Sent: 19 November 2012 16:16 To: Chris Redpath Cc: Viresh Kumar; Andrey Konovalov; PDSW-power-team; Lists linaro-dev Subject: Re: [GIT PULL]; big LITTLE MP master v12
On Mon, 2012-11-19 at 15:57 +0000, Chris Redpath wrote:
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 config Linaro uses for Android on vexpress is generated by the command:
ARCH=arm scripts/kconfig/merge_config.sh \ linaro/configs/linaro-base.conf \ linaro/configs/android.conf \ linaro/configs/big-LITTLE-MP.conf \ linaro/configs/vexpress.conf
I've push the kernel tree I had to my personal git area... http://git.linaro.org/gitweb?p=people/tixy/kernel.git%3Ba=shortlog%3Bh=refs /heads/integration-android-vexpress
the Android userside I'm using the latest daily build: https://android-build.linaro.org/builds/~linaro-android/vexpress-jb- gcc47-armlt-tracking-open/#build=104
An Android images always takes a lot longer to boot first time, so before doing any timing boot a fresh image one and wait for it to settle down (the power/freq status LED on the TC2 coretile are a good indicator of when the system finally goes mostly idle)
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.
Even the 90 second boot seemed very long from what I remember, that's why I was also trying to to build without any big.LITTLE MP configured; was going to try different configs to see if I can narrow the slowness down.
-- Tixy
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.
-- 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.