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/...
the Android userside I'm using the latest daily build:
https://android-build.linaro.org/builds/~linaro-android/vexpress-jb-gcc47-ar...
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.