Hi Andrey,
This is PULL request for big LITTLE MP v8 branch: Major updates are: - Based on v3.6-rc5 - new branch from Paulm: rcu-hotplug-v1, vincent: scheduler-misc-v1 and sudeepk arm-multi_pmu_v1 - new version of patches from Morten: task-placement-v2 - config fragment updated for fast & slow cpu
Compile tested only.
-----------------------------------------x-------------------------x-------------------------------
The following changes since commit 55d512e245bc7699a8800e23df1a24195dd08217:
Linux 3.6-rc5 (2012-09-08 16:43:45 -0700)
are available in the git repository at:
git://git.linaro.org/arm/big.LITTLE/mp.git big-LITTLE-MP-v8
for you to fetch changes up to eb07c27e2987ab3c16cedee1367694988efe3ff4:
Merge branches 'per-cpu-thread-hotplug-v3-fixed', 'task-placement-v2', 'cpu-hotplug-get_online_cpus-v1', 'arm-asymmetric-support-v3-v3.6-rc1', 'rcu-hotplug-v1', 'arm-multi_pmu_v1', 'scheduler-misc-v1' and 'config-fragments' into big-LITTLE-MP-v8 (2012-09-17 09:26:07 +0530)
----------------------------------------------------------------
Axel Lin (1): ARM: ux500: Fix build error due to missing include of asm/pmu.h in cpu-db8500.c
Ben Segall (1): sched: maintain per-rq runnable averages
Jon Hunter (1): ARM: PMU: Add runtime PM Support
Jon Medhurst (6): configs: Initial core configs configs: Make CONFIG_MODULES part of linaro-base Merge branch 'config-core-3.4' into config-core-tracking configs: Replace CONFIG_PERF_COUNTERS with CONFIG_PERF_EVENTS configs: android: Enable FB_EARLYSUSPEND configs: android: Enable CONFIG_INPUT_UINPUT to get aidb working
Lorenzo Pieralisi (1): ARM: kernel: provide cluster to logical cpu mask mapping API
Morten Rasmussen (10): 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
Paul E. McKenney (4): rcu: Use smp_hotplug_thread facility for RCUs per-CPU kthread hotplug: Fix UP bug in smpboot hotplug code rcu: Remove _rcu_barrier() dependency on __stop_machine() rcu: Disallow callback registry on offline CPUs
Paul Turner (15): sched: track the runnable average on a per-task entitiy 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: implement usage tracking sched: introduce temporary FAIR_GROUP_SCHED dependency for load-tracking
Peter Zijlstra (1): sched: Fix load avg vs cpu-hotplug
Ricardo Salveti de Araujo (8): configs: moving previous ubuntu.conf as ubuntu-minimal and creating a full ubuntu one configs: ubuntu: be compatible with the enforce script configs: ubuntu: disabling CODA_FS, seems to be broken atm configs: ubuntu: disabling CGROUPS as default Merge branch 'config-core-3.4' into config-core-tracking configs: ubuntu: updating configs for 3.5 configs: ubuntu: disabling CONFIG_MTD_NAND_NANDSIM=m, breaking build config: ubuntu: ATH6KL should be platform dependent
Silas Boyd-Wickizer (6): Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug
Sudeep KarkadaNagesha (9): ARM: pmu: remove arm_pmu_type enumeration ARM: perf: move irq registration into pmu implementation ARM: perf: allocation of cpu_pmu at init time ARM: perf: change multiple arm_pmu function parameters to struct perf_event ARM: perf: rework on armv7_pmnc_counter_valid ARM: perf: define per-cpu arm_pmu instead of a single global pointer ARM: perf: register the init functions with the bindings ARM: perf: add support for per-cluster/multiple PMUs ARM: perf: save/restore pmu registers in pm notifier
Thomas Gleixner (6): rcu: Yield simpler kthread: Implement park/unpark facility smpboot: Provide infrastructure for percpu hotplug threads softirq: Use hotplug thread infrastructure watchdog: Use hotplug thread infrastructure infiniband: ehca: Use hotplug thread infrastructure
Vincent Guittot (2): sched: cpu_power: enable ARCH_POWER sched: Fix nohz_idle_balance()
Viresh Kumar (4): 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 'per-cpu-thread-hotplug-v3-fixed', 'task-placement-v2', 'cpu-hotplug-get_online_cpus-v1', 'arm-asymmetric-support-v3-v3.6-rc1', 'rcu-hotplug-v1', 'arm-multi_pmu_v1', 'scheduler-misc-v1' and 'config-fragments' into big-LITTLE-MP-v8
Will Deacon (6): ARM: perf: add devicetree bindings for 11MPcore, A5, A7 and A15 PMUs ARM: pmu: remove unused reservation mechanism ARM: perf: remove mysterious compiler barrier ARM: perf: probe devicetree in preference to current CPU ARM: perf: prepare for moving CPU PMU code into separate file ARM: perf: move CPU-specific PMU handling code into separate file
Documentation/devicetree/bindings/arm/pmu.txt | 7 + MAINTAINERS | 1 - arch/arm/Kconfig | 54 +- arch/arm/include/asm/perf_event.h | 9 +- arch/arm/include/asm/pmu.h | 128 +- arch/arm/include/asm/topology.h | 35 + arch/arm/kernel/Makefile | 4 +- arch/arm/kernel/perf_event.c | 391 +---- arch/arm/kernel/perf_event_cpu.c | 351 ++++ arch/arm/kernel/perf_event_v6.c | 152 +- arch/arm/kernel/perf_event_v7.c | 330 ++-- arch/arm/kernel/perf_event_xscale.c | 179 ++- arch/arm/kernel/pmu.c | 36 - arch/arm/kernel/topology.c | 118 ++ arch/arm/mach-bcmring/arch.c | 3 +- arch/arm/mach-omap2/devices.c | 3 +- arch/arm/mach-pxa/devices.c | 3 +- arch/arm/mach-realview/realview_eb.c | 3 +- arch/arm/mach-realview/realview_pb1176.c | 3 +- arch/arm/mach-realview/realview_pb11mp.c | 3 +- arch/arm/mach-realview/realview_pba8.c | 3 +- arch/arm/mach-realview/realview_pbx.c | 3 +- arch/arm/mach-tegra/devices.c | 3 +- arch/arm/mach-ux500/cpu-db8500.c | 4 +- arch/arm/mach-vexpress/ct-ca9x4.c | 3 +- arch/arm/plat-iop/pmu.c | 3 +- arch/arm/plat-samsung/devs.c | 3 +- arch/x86/kernel/cpuid.c | 5 + arch/x86/kernel/msr.c | 5 + drivers/hwmon/coretemp.c | 5 + drivers/hwmon/via-cputemp.c | 5 + drivers/infiniband/hw/ehca/ehca_irq.c | 253 ++- drivers/infiniband/hw/ehca/ehca_irq.h | 6 +- include/linux/kthread.h | 11 +- include/linux/sched.h | 34 + include/linux/smpboot.h | 43 + include/trace/events/sched.h | 153 ++ kernel/Makefile | 3 +- kernel/cpu.c | 10 +- kernel/kthread.c | 185 ++- kernel/rcutree.c | 105 +- kernel/rcutree.h | 18 +- kernel/rcutree_plugin.h | 403 +---- kernel/rcutree_trace.c | 7 +- kernel/sched/core.c | 56 +- kernel/sched/debug.c | 39 +- kernel/sched/fair.c | 1258 +++++++++++++-- kernel/sched/features.h | 2 +- kernel/sched/sched.h | 68 +- kernel/smpboot.c | 233 +++ kernel/smpboot.h | 4 + kernel/softirq.c | 108 +- kernel/watchdog.c | 263 ++- linaro/configs/android.conf | 33 + linaro/configs/big-LITTLE-MP.conf | 9 + linaro/configs/linaro-base.conf | 84 + linaro/configs/ubuntu-minimal.conf | 24 + linaro/configs/ubuntu.conf | 2133 +++++++++++++++++++++++++ 58 files changed, 5548 insertions(+), 1852 deletions(-) create mode 100644 arch/arm/kernel/perf_event_cpu.c delete mode 100644 arch/arm/kernel/pmu.c create mode 100644 include/linux/smpboot.h create mode 100644 linaro/configs/android.conf create mode 100644 linaro/configs/big-LITTLE-MP.conf create mode 100644 linaro/configs/linaro-base.conf create mode 100644 linaro/configs/ubuntu-minimal.conf create mode 100644 linaro/configs/ubuntu.conf
On Mon, 2012-09-17 at 15:19 +0530, Viresh Kumar wrote:
Hi Andrey,
This is PULL request for big LITTLE MP v8 branch: Major updates are: - Based on v3.6-rc5 - new branch from Paulm: rcu-hotplug-v1, vincent: scheduler-misc-v1 and sudeepk arm-multi_pmu_v1 - new version of patches from Morten: task-placement-v2 - config fragment updated for fast & slow cpu
Compile tested only.
I've done a quick test of this v8 branch and Android builds and boots on TC2 (and A9).
When using Streamline to view the CPU usage running 0xbench's 3D benchmarks, things looked a bit different from before (surfaceflinger occasionally running on a little core) but I couldn't see anything which was obviously wrong. As a sanity check I used some printfs to verify that the HMP migration code was being executed and that the big and little cores were correctly identified.
Hi Viresh,
On 09/17/2012 01:49 PM, Viresh Kumar wrote:
Hi Andrey,
This is PULL request for big LITTLE MP v8 branch:
Merged into linux-linaro-core-tracking, the tag is llct-20120917.0.
Thanks, Andrey
Major updates are: - Based on v3.6-rc5 - new branch from Paulm: rcu-hotplug-v1, vincent: scheduler-misc-v1 and sudeepk arm-multi_pmu_v1 - new version of patches from Morten: task-placement-v2 - config fragment updated for fast & slow cpu
Compile tested only.
-----------------------------------------x-------------------------x-------------------------------
The following changes since commit 55d512e245bc7699a8800e23df1a24195dd08217:
Linux 3.6-rc5 (2012-09-08 16:43:45 -0700)
are available in the git repository at:
git://git.linaro.org/arm/big.LITTLE/mp.git big-LITTLE-MP-v8
for you to fetch changes up to eb07c27e2987ab3c16cedee1367694988efe3ff4:
Merge branches 'per-cpu-thread-hotplug-v3-fixed', 'task-placement-v2', 'cpu-hotplug-get_online_cpus-v1', 'arm-asymmetric-support-v3-v3.6-rc1', 'rcu-hotplug-v1', 'arm-multi_pmu_v1', 'scheduler-misc-v1' and 'config-fragments' into big-LITTLE-MP-v8 (2012-09-17 09:26:07 +0530)
Axel Lin (1): ARM: ux500: Fix build error due to missing include of asm/pmu.h in cpu-db8500.c
Ben Segall (1): sched: maintain per-rq runnable averages
Jon Hunter (1): ARM: PMU: Add runtime PM Support
Jon Medhurst (6): configs: Initial core configs configs: Make CONFIG_MODULES part of linaro-base Merge branch 'config-core-3.4' into config-core-tracking configs: Replace CONFIG_PERF_COUNTERS with CONFIG_PERF_EVENTS configs: android: Enable FB_EARLYSUSPEND configs: android: Enable CONFIG_INPUT_UINPUT to get aidb working
Lorenzo Pieralisi (1): ARM: kernel: provide cluster to logical cpu mask mapping API
Morten Rasmussen (10): 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
Paul E. McKenney (4): rcu: Use smp_hotplug_thread facility for RCUs per-CPU kthread hotplug: Fix UP bug in smpboot hotplug code rcu: Remove _rcu_barrier() dependency on __stop_machine() rcu: Disallow callback registry on offline CPUs
Paul Turner (15): sched: track the runnable average on a per-task entitiy 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: implement usage tracking sched: introduce temporary FAIR_GROUP_SCHED dependency for load-tracking
Peter Zijlstra (1): sched: Fix load avg vs cpu-hotplug
Ricardo Salveti de Araujo (8): configs: moving previous ubuntu.conf as ubuntu-minimal and creating a full ubuntu one configs: ubuntu: be compatible with the enforce script configs: ubuntu: disabling CODA_FS, seems to be broken atm configs: ubuntu: disabling CGROUPS as default Merge branch 'config-core-3.4' into config-core-tracking configs: ubuntu: updating configs for 3.5 configs: ubuntu: disabling CONFIG_MTD_NAND_NANDSIM=m, breaking build config: ubuntu: ATH6KL should be platform dependent
Silas Boyd-Wickizer (6): Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug Use get_online_cpus to avoid races involving CPU hotplug
Sudeep KarkadaNagesha (9): ARM: pmu: remove arm_pmu_type enumeration ARM: perf: move irq registration into pmu implementation ARM: perf: allocation of cpu_pmu at init time ARM: perf: change multiple arm_pmu function parameters to struct perf_event ARM: perf: rework on armv7_pmnc_counter_valid ARM: perf: define per-cpu arm_pmu instead of a single global pointer ARM: perf: register the init functions with the bindings ARM: perf: add support for per-cluster/multiple PMUs ARM: perf: save/restore pmu registers in pm notifier
Thomas Gleixner (6): rcu: Yield simpler kthread: Implement park/unpark facility smpboot: Provide infrastructure for percpu hotplug threads softirq: Use hotplug thread infrastructure watchdog: Use hotplug thread infrastructure infiniband: ehca: Use hotplug thread infrastructure
Vincent Guittot (2): sched: cpu_power: enable ARCH_POWER sched: Fix nohz_idle_balance()
Viresh Kumar (4): 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 'per-cpu-thread-hotplug-v3-fixed', 'task-placement-v2', 'cpu-hotplug-get_online_cpus-v1', 'arm-asymmetric-support-v3-v3.6-rc1', 'rcu-hotplug-v1', 'arm-multi_pmu_v1', 'scheduler-misc-v1' and 'config-fragments' into big-LITTLE-MP-v8
Will Deacon (6): ARM: perf: add devicetree bindings for 11MPcore, A5, A7 and A15 PMUs ARM: pmu: remove unused reservation mechanism ARM: perf: remove mysterious compiler barrier ARM: perf: probe devicetree in preference to current CPU ARM: perf: prepare for moving CPU PMU code into separate file ARM: perf: move CPU-specific PMU handling code into separate file
Documentation/devicetree/bindings/arm/pmu.txt | 7 + MAINTAINERS | 1 - arch/arm/Kconfig | 54 +- arch/arm/include/asm/perf_event.h | 9 +- arch/arm/include/asm/pmu.h | 128 +- arch/arm/include/asm/topology.h | 35 + arch/arm/kernel/Makefile | 4 +- arch/arm/kernel/perf_event.c | 391 +---- arch/arm/kernel/perf_event_cpu.c | 351 ++++ arch/arm/kernel/perf_event_v6.c | 152 +- arch/arm/kernel/perf_event_v7.c | 330 ++-- arch/arm/kernel/perf_event_xscale.c | 179 ++- arch/arm/kernel/pmu.c | 36 - arch/arm/kernel/topology.c | 118 ++ arch/arm/mach-bcmring/arch.c | 3 +- arch/arm/mach-omap2/devices.c | 3 +- arch/arm/mach-pxa/devices.c | 3 +- arch/arm/mach-realview/realview_eb.c | 3 +- arch/arm/mach-realview/realview_pb1176.c | 3 +- arch/arm/mach-realview/realview_pb11mp.c | 3 +- arch/arm/mach-realview/realview_pba8.c | 3 +- arch/arm/mach-realview/realview_pbx.c | 3 +- arch/arm/mach-tegra/devices.c | 3 +- arch/arm/mach-ux500/cpu-db8500.c | 4 +- arch/arm/mach-vexpress/ct-ca9x4.c | 3 +- arch/arm/plat-iop/pmu.c | 3 +- arch/arm/plat-samsung/devs.c | 3 +- arch/x86/kernel/cpuid.c | 5 + arch/x86/kernel/msr.c | 5 + drivers/hwmon/coretemp.c | 5 + drivers/hwmon/via-cputemp.c | 5 + drivers/infiniband/hw/ehca/ehca_irq.c | 253 ++- drivers/infiniband/hw/ehca/ehca_irq.h | 6 +- include/linux/kthread.h | 11 +- include/linux/sched.h | 34 + include/linux/smpboot.h | 43 + include/trace/events/sched.h | 153 ++ kernel/Makefile | 3 +- kernel/cpu.c | 10 +- kernel/kthread.c | 185 ++- kernel/rcutree.c | 105 +- kernel/rcutree.h | 18 +- kernel/rcutree_plugin.h | 403 +---- kernel/rcutree_trace.c | 7 +- kernel/sched/core.c | 56 +- kernel/sched/debug.c | 39 +- kernel/sched/fair.c | 1258 +++++++++++++-- kernel/sched/features.h | 2 +- kernel/sched/sched.h | 68 +- kernel/smpboot.c | 233 +++ kernel/smpboot.h | 4 + kernel/softirq.c | 108 +- kernel/watchdog.c | 263 ++- linaro/configs/android.conf | 33 + linaro/configs/big-LITTLE-MP.conf | 9 + linaro/configs/linaro-base.conf | 84 + linaro/configs/ubuntu-minimal.conf | 24 + linaro/configs/ubuntu.conf | 2133 +++++++++++++++++++++++++ 58 files changed, 5548 insertions(+), 1852 deletions(-) create mode 100644 arch/arm/kernel/perf_event_cpu.c delete mode 100644 arch/arm/kernel/pmu.c create mode 100644 include/linux/smpboot.h create mode 100644 linaro/configs/android.conf create mode 100644 linaro/configs/big-LITTLE-MP.conf create mode 100644 linaro/configs/linaro-base.conf create mode 100644 linaro/configs/ubuntu-minimal.conf create mode 100644 linaro/configs/ubuntu.conf