Dear All,
I'd like to ask about the power aware scheduler development:
https://blueprints.launchpad.net/linaro-power-kernel/+spec/power-aware-
scheduler
Why I'm interested?
I'd like to test and further develop methods to put CPU to IDLE or
changing its operating frequency. I'm especially interested in
packing as much as possible tasks to a CPU and put the other one to
deep idle (RFTS - policy). I'm also curious how aggressive
SCHED_POLICY_POWERSAVING is going to be? (are there any special
requirements)
In the above page at the "Work items 2013.01" section states that
there is a work TODO in the "max_power and current_power" for DVFS.
Could you share code (if available) and plans for this development?
I've looked to the:
git://git.linaro.org/arm/big.LITTLE/mp.git tree (branch: power-aware-
scheduling-v4), but didn't find the power related code (especially
DVFS).
Probably I've looked at wrong place, so any guidance would be
appreciate.
As a side question:
On the linaro-dev mailing list there are some patches for tuning cpufreq
governor. Is there any roadmap for this effort?
--
Best regards,
Lukasz Majewski
Samsung R&D Poland (SRPOL) | Linux Platform Group
The nr_busy_cpus field of the sched_group_power is sometime different from 0
whereas the platform is fully idle. This serie fixes 3 use cases:
- when some CPUs enter idle state while booting all CPUs
- when a CPU is unplug and/or replug
Change since V1:
- remove the patch for SCHED softirq on an idle core use case as it was
a side effect of the other use cases.
Vincent Guittot (2):
sched: fix init NOHZ_IDLE flag
sched: fix update NOHZ_IDLE flag
kernel/sched/core.c | 1 +
kernel/sched/fair.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
--
1.7.9.5
Hi Andrey,
big LITTLE MP v15 is ready for you to pull. Its 11:00 PM at my side
and am feeling
really sleepy, please forgive any stupid mistakes of mine.
Updates:
-------
- Rebased over 3.8-rc7
- Stats: Total distinct patches: 36
- Dropped Patches: Two patches from cpufreq-fixes-v2 (3): causing some
failures.
-----------------x-------------------x--------------------
The following changes since commit 836dc9e3fbbab0c30aa6e664417225f5c1fb1c39:
Linux 3.8-rc7 (2013-02-09 08:20:39 +1100)
are available in the git repository at:
git://git.linaro.org/arm/big.LITTLE/mp.git big-LITTLE-MP-master-v15
for you to fetch changes up to 6ab7c9986cf271abd3564ec8e90ad48a4ff1d8b7:
Merge branches 'arm-multi_pmu_v2', 'cpufreq-fixes-v3',
'hw-bkp-v7.1-debug-v2', 'task-placement-v2',
'task-placement-v2-sysfs', 'misc-patches' and 'config-fragments' into
big-LITTLE-MP-master-v15 (2013-02-15 22:44:07 +0530)
----------------------------------------------------------------
Chris Redpath (2):
ARM: Experimental Frequency-Invariant Load Scaling Patch
ARM: Fix build breakage when big.LITTLE.conf is not used.
Dietmar Eggemann (2):
ARM: hw_breakpoint: Check function for OS Save and Restore mechanism
ARM: hw_breakpoint: Debug powerdown support for self-hosted debug
Jon Medhurst (1):
ARM: sched: Avoid empty 'slow' HMP domain
Liviu Dudau (1):
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
Morten Rasmussen (14):
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: Basic global balancing support for HMP
Olivier Cozette (1):
ARM: Change load tracking scale using sysfs
Paul Turner (1):
sched: implement usage tracking
Sudeep KarkadaNagesha (7):
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
sched: fix arch_get_fast_and_slow_cpus to get logical cpumask correctly
Thomas Gleixner (1):
genirq: Add default affinity mask command line option
Viresh Kumar (7):
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
cpufreq: Manage only online cpus
cpufreq: Notify governors when cpus are hot-[un]plugged
cpufreq: Don't use cpu removed during cpufreq_driver_unregister
Merge branches 'arm-multi_pmu_v2', 'cpufreq-fixes-v3',
'hw-bkp-v7.1-debug-v2', 'task-placement-v2',
'task-placement-v2-sysfs', 'misc-patches' and 'config-fragments' into
big-LITTLE-MP-master-v15
Documentation/devicetree/bindings/arm/pmu.txt | 3 +
Documentation/kernel-parameters.txt | 9 +
arch/arm/Kconfig | 85 ++
arch/arm/include/asm/hw_breakpoint.h | 3 +
arch/arm/include/asm/pmu.h | 12 +
arch/arm/include/asm/topology.h | 34 +
arch/arm/kernel/hw_breakpoint.c | 56 +-
arch/arm/kernel/perf_event.c | 19 +
arch/arm/kernel/perf_event_cpu.c | 117 ++-
arch/arm/kernel/perf_event_v7.c | 57 +-
arch/arm/kernel/topology.c | 132 ++++
drivers/cpufreq/cpufreq.c | 25 +-
include/linux/sched.h | 12 +
include/trace/events/sched.h | 153 ++++
kernel/irq/irqdesc.c | 21 +-
kernel/sched/core.c | 4 +
kernel/sched/debug.c | 3 +
kernel/sched/fair.c | 1021 ++++++++++++++++++++++++-
kernel/sched/sched.h | 13 +-
linaro/configs/big-LITTLE-MP.conf | 13 +
20 files changed, 1739 insertions(+), 53 deletions(-)
create mode 100644 linaro/configs/big-LITTLE-MP.conf
Hi All,
I am new to Linaro HWPacks.
I would like to know if there is a HW Pack for ZYNQ ZC702 board like the
ones for PandaBoard and Gumsticks.
Is there nay plans on supporting this platform ?
Any links or guides on building a new HW pack would be helpful.
--
*Anup Kini
*Systems Engineer****
*
------------------------------
*
*Synapticon** * | Cyber-Physical System Solutions
This week Linaro held a virtual mini-summit for KVM/QEMU with major
stakeholders for the area participating in it. Main goal for the
mini-summit was to synchronize on the current state of the
Virtualization area, plans and work needed to be done.
As a result of this meeting, Linaro is publishing a report [1] and is
staring to be active also in Virtualization area with the help of it's
brand new Virtualization team.
You are welcome to comment on the report and/or mention additional
related topics, which were not mentioned on the Mini Summit.
Links:
[1] https://wiki.linaro.org/LEG/Engineering/Virtualization/201302MiniSummit
--
Best Regards,
Serge Broslavsky <serge.broslavsky(a)linaro.org>
Project Manager, Linaro
M: +37129426328 IRC: ototo Skype: serge.broslavsky
http://linaro.org | Open source software for ARM SoCs
The nr_busy_cpus field of the sched_group_power is sometime different from 0
whereas the platform is fully idle. This serie fixes 3 use cases:
- when some CPUs enter idle state while booting all CPUs
- when a CPU is unplug and/or replug
Change since V2:
- change the initialization to idle state instead of busy state so a CPU that
enters idle during the build of the sched_domain will not corrupt the
initialization state
Change since V1:
- remove the patch for SCHED softirq on an idle core use case as it was
a side effect of the other use cases.
Vincent Guittot (2):
sched: fix init NOHZ_IDLE flag
sched: fix update NOHZ_IDLE flag
kernel/sched/core.c | 4 +++-
kernel/sched/fair.c | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
--
1.7.9.5
Applied here:
http://git.linaro.org/gitweb?p=arm/big.LITTLE/mp.git;a=shortlog;h=refs/head…
On 18 February 2013 10:37, Alex Shi <alex.shi(a)intel.com> wrote:
> Since the simplification of fork/exec/wake balancing has much arguments,
> I removed that part in the patch set.
>
> This patch set implement/consummate the rough power aware scheduling
> proposal: https://lkml.org/lkml/2012/8/13/139.
> It defines 2 new power aware policy 'balance' and 'powersaving', then
> try to pack tasks on each sched groups level according the different
> scheduler policy. That can save much power when task number in system
> is no more than LCPU number.
>
> As mentioned in the power aware scheduling proposal, Power aware
> scheduling has 2 assumptions:
> 1, race to idle is helpful for power saving
> 2, less active sched groups will reduce cpu power consumption
>
> The first assumption make performance policy take over scheduling when
> any group is busy.
> The second assumption make power aware scheduling try to pack disperse
> tasks into fewer groups.
>
> Like sched numa, power aware scheduling is also a kind of cpu locality
> oriented scheduling, so it is natural compatible with sched numa.
>
> Since the patch can perfect pack tasks into fewer groups, I just show
> some performance/power testing data here:
> =========================================
> $for ((i = 0; i < I; i++)) ; do while true; do :; done & done
>
> On my SNB laptop with 4core* HT: the data is avg Watts
> powersaving balance performance
> i = 2 40 54 54
> i = 4 57 64* 68
> i = 8 68 68 68
>
> Note:
> When i = 4 with balance policy, the power may change in 57~68Watt,
> since the HT capacity and core capacity are both 1.
>
> on SNB EP machine with 2 sockets * 8 cores * HT:
> powersaving balance performance
> i = 4 190 201 238
> i = 8 205 241 268
> i = 16 271 348 376
>
> bltk-game with openarena, the data is avg Watts
> powersaving balance performance
> wsm laptop 22.9 23.8 24.4
> snb laptop 20.2 20.5 20.7
>
> tasks number keep waving benchmark, 'make -j x vmlinux'
> on my SNB EP 2 sockets machine with 8 cores * HT:
>
> powersaving balance performance
> x = 1 175.603 /417 13 175.220 /416 13 176.073 /407 13
> x = 2 192.215 /218 23 194.522 /202 25 217.393 /200 23
> x = 4 205.226 /124 39 208.823 /114 42 230.425 /105 41
> x = 8 236.369 /71 59 249.005 /65 61 257.661 /62 62
> x = 16 283.842 /48 73 307.465 /40 81 309.336 /39 82
> x = 32 325.197 /32 96 333.503 /32 93 336.138 /32 92
>
> data explains: 175.603 /417 13
> 175.603: average Watts
> 417: seconds(compile time)
> 13: scaled performance/power = 1000000 / seconds / watts
>
> Another testing of parallel compress with pigz on Linus' git tree.
> results show we get much better performance/power with powersaving and
> balance policy:
>
> testing command:
> #pigz -k -c -p$x -r linux* &> /dev/null
>
> On a NHM EP box
> powersaving balance performance
> x = 4 166.516 /88 68 170.515 /82 71 165.283 /103 58
> x = 8 173.654 /61 94 177.693 /60 93 172.31 /76 76
>
> On a 2 sockets SNB EP box.
> powersaving balance performance
> x = 4 190.995 /149 35 200.6 /129 38 208.561 /135 35
> x = 8 197.969 /108 46 208.885 /103 46 213.96 /108 43
> x = 16 205.163 /76 64 212.144 /91 51 229.287 /97 44
>
> data format is: 166.516 /88 68
> 166.516: average Watts
> 88: seconds(compress time)
> 68: scaled performance/power = 1000000 / time / power
>
> Some performance testing results:
> ---------------------------------
>
> Tested benchmarks: kbuild, specjbb2005, oltp, tbench, aim9,
> hackbench, fileio-cfq of sysbench, dbench, aiostress, multhreads
> loopback netperf. on my core2, nhm, wsm, snb, platforms. no clear
> performance change found on 'performance' policy.
>
> Tested balance/powersaving policy with above benchmarks,
> a, specjbb2005 drop 5~7% on both of policy whenever with openjdk or jrockit.
> b, hackbench drops 30+% with powersaving policy on snb 4 sockets platforms.
> Others has no clear change.
>
> test result from Mike Galbraith:
> --------------------------------
> With aim7 compute on 4 node 40 core box, I see stable throughput
> improvement at tasks = nr_cores and below w. balance and powersaving.
>
> 3.8.0-performance 3.8.0-balance 3.8.0-powersaving
> Tasks jobs/min/task jobs/min/task jobs/min/task
> 1 432.8571 433.4764 433.1665
> 5 480.1902 510.9612 497.5369
> 10 429.1785 533.4507 518.3918
> 20 424.3697 529.7203 528.7958
> 40 419.0871 500.8264 517.0648
>
> No deltas after that. There were also no deltas between patched kernel
> using performance policy and virgin source.
>
>
> Changelog:
> V5 change:
> a, change sched_policy to sched_balance_policy
> b, split fork/exec/wake power balancing into 3 patches and refresh
> commit logs
> c, others minors clean up
>
> V4 change:
> a, fix few bugs and clean up code according to Morten Rasmussen, Mike
> Galbraith and Namhyung Kim. Thanks!
> b, take Morten Rasmussen's suggestion to use different criteria for
> different policy in transitory task packing.
> c, shorter latency in power aware scheduling.
>
> V3 change:
> a, engaged nr_running and utils in periodic power balancing.
> b, try packing small exec/wake tasks on running cpu not idle cpu.
>
> V2 change:
> a, add lazy power scheduling to deal with kbuild like benchmark.
>
>
> Thanks comments/suggestions from PeterZ, Linus Torvalds, Andrew Morton,
> Ingo, Arjan van de Ven, Borislav Petkov, PJT, Namhyung Kim, Mike
> Galbraith, Greg, Preeti, Morten Rasmussen etc.
>
> Thanks fengguang's 0-day kbuild system for testing this patchset.
>
> Any more comments are appreciated!
>
> -- Thanks Alex
>
>
> [patch v5 01/15] sched: set initial value for runnable avg of sched
> [patch v5 02/15] sched: set initial load avg of new forked task
> [patch v5 03/15] Revert "sched: Introduce temporary FAIR_GROUP_SCHED
> [patch v5 04/15] sched: add sched balance policies in kernel
> [patch v5 05/15] sched: add sysfs interface for sched_balance_policy
> [patch v5 06/15] sched: log the cpu utilization at rq
> [patch v5 07/15] sched: add new sg/sd_lb_stats fields for incoming
> [patch v5 08/15] sched: move sg/sd_lb_stats struct ahead
> [patch v5 09/15] sched: add power aware scheduling in fork/exec/wake
> [patch v5 10/15] sched: packing transitory tasks in wake/exec power
> [patch v5 11/15] sched: add power/performance balance allow flag
> [patch v5 12/15] sched: pull all tasks from source group
> [patch v5 13/15] sched: no balance for prefer_sibling in power
> [patch v5 14/15] sched: power aware load balance
> [patch v5 15/15] sched: lazy power balance
On 17 February 2013 11:11, Viresh Kumar <viresh.kumar(a)linaro.org> wrote:
> I have booked a room from 11:00 AM to 12:00 PM : 1 hr.
>
> I will see if i can request it from 10:30 to 11:00 also, in case the other party
> accepts it :)
>
> I would request all of us to reach ARM by 10:30 AM. So, that we utilize the time
> to fullest.
You need to reach here
https://maps.google.co.in/maps?q=12.935457,77.690776&ll=12.93547,77.691107&…
ARM Embedded Technologies Private Ltd
Level III, Salarpuria Touchstone
Marthahalli-Sarajapur Outer Ring Road,
Varthur Hobli,
Bangalore-560 103
And give me a call: +91-9980709387
--
viresh
Hi Friends,
We are organizing an PGP Key signing event in ARM Bangalore this Monday.
(Time not decided yet). In case anybody else is available for the same, please
follow below mail.
--
viresh
On 16 February 2013 18:55, Santosh Shilimkar <santosh.shilimkar(a)ti.com> wrote:
> So confirmed folks so far:
>
> 1. Vineet Gupta <Vineet.Gupta1(a)synopsys.com>
> 2. Sumit Semwal <sumit.semwal(a)ti.com>
> 3. Santosh Shilimkar <santosh.shilimkar(a)ti.com>
> 4. Srivatsa S. Bhat <srivatsa.bhat(a)linux.vnet.ibm.com>
> 5. Viresh Kumar <viresh.kumar(a)linaro.org>
> 6. Vinod Koul <vinod.koul(a)intel.com>
> 7. Rajendra Nayak<rnayak(a)ti.com>
>
> Location:
> ARM Office, Outer Ring Road(Thanks to Viresh)
> http://www.arm.com/about/offices/bangalore.php
>
> Preperations:
> - Read below link if not already ...
> http://lwn.net/Articles/461236/