Thought I'd send out an email on what progress was made on KVM last
quarter. The Linaro platform and toolchain groups did quite a bit of
integration work to package and polish the different components to
make it quicker to get going on KVM. You can now download pre-built
versions of the boot wrapper, QEMU, kernel, and root file system; use
linaro-image tools to create a host and guest; and then spin both up
inside a Fast Model.
There's more information including versions used and links off at:
https://wiki.linaro.org/WorkingGroups/ToolChain/Outputs/KVMIntegration
There's still much to be done. The current focus is helping the
upstream developers (Hi Christoffer!) get the patch set up into
kvm-next.
-- Michael
subject line corrected as advised. Thanks.
-evt
---------- Forwarded message ----------
From: eric van tassell <evttxl(a)gmail.com>
Date: Tue, Jun 12, 2012 at 6:35 PM
Subject: RFC: Initial Power and Voltage domain support for powerdebug
To: linaro-dev(a)lists.linaro.org
+ all written in usermode
+ no new proc files
+ configuration based on text file so easy to adapt to the non-omap
proletarians
+ gui alignment still needs work
+ sample config files for PD and VDD in the patch but lots of
registers and domains still need to be added
+ same code does power and voltage domains
+ diff attached
+ screenshots attached
--
- evt
(Eric van Tassell)
twitter: evt_texelsoft
linked-in: linkedin.com/in/evttxl
--
- evt
(Eric van Tassell)
twitter: evt_texelsoft
linked-in: linkedin.com/in/evttxl
On 06/12/2012 09:05 PM, Arnaldo Carvalho de Melo wrote:
> Could you please check out if my tmp.perf/core branch fixes the
> problems reported lately about event name mismatches from perf.data
> files collected in other machines, etc.
As of a8dfce8b37b2e0d216860191cd50fde501eeb036, perf sched replay
doesn't work because (perf_evlist__set_tracepoints_handlers):
...
err = trace_event__id(assocs[i].name); <-- err is host id, not from perf.data
if (err < 0)
goto out;
evsel = perf_evlist__find_tracepoint_by_id(evlist, err); <-- oops!
...
Assuming event names are set, can we just lookup by name?
Dmitry
Regretfully this summary is very late.
The Linaro 12.05 delivery cycle was fast and furious with Connect Q2.12, end of
quarter and delivery all occurring in the same week.
During this 2012.05 Linaro Connect, much of the effort was focused on:
* ARM big.LITTLE implementation and testing
* Performance improvements
* Linaro-linux baseline
* Release process streamlining
Delivery highlights can be seen at http://www.linaro.org/downloads/1205#tab1
Platform Blueprints
----------------------------
The number of blueprints that missed the cycle:
Android 18 out of 30
Developer Platform 6 out of 18
Infrastructure 5 out of 10
Lava 5 out of 18
Total: 34 out of 76
45% of blueprints scheduled for this cycle were not delivered.
* Not included is data from working groups and landing teams
Source: https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AjEaTwrvj1bidDBIM…
Roadmap End Of Quarter
-------------------------------------
Android - 5 Cards, 5 Delivered
Dev Platform - 5 Cards, 3 Delivered
Graphics WG - 3 Cards, 3 Delivered
Kernel WG - 4 Cards, 3 Delivered
LAVA - 3 Cards, 2 Delivered
Multimedia WG - 3 Cards, 1 Delivered
OCTO - 2 Cards, 2 Delivered
Power Management WG - 5 Cards, 5 Delivered
Total 29 Cards, 24 delivered or probably delivered.
Source: https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AmTRRvye9pnjdGJaV…
--
David Zinman
Linaro Release Manager | Project Manager
Linaro.org | Open source software for ARM SoCs
We have the state index passed as parameter to the 'enter' function.
Most of the drivers assign their 'enter' functions several times in
the cpuidle_state structure, as we have the index, we can delegate
to the driver to handle their own callback array.
That will have the benefit of removing multiple lines of code in the
different drivers.
In order to smoothly modify the driver, the 'enter' function are in
the driver structure and in the cpuidle state structure. That will
let the time to modify the different drivers one by one.
So the 'cpuidle_enter' function checks if the 'enter' callback is
assigned in the driver structure and use it, otherwise it invokes
the 'enter' assigned to the cpuidle_state.
Signed-off-by: Daniel Lezcano <daniel.lezcano(a)linaro.org>
---
drivers/cpuidle/cpuidle.c | 4 +++-
include/linux/cpuidle.h | 1 +
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
index d90519c..155dee7 100644
--- a/drivers/cpuidle/cpuidle.c
+++ b/drivers/cpuidle/cpuidle.c
@@ -46,7 +46,9 @@ static inline int cpuidle_enter(struct cpuidle_device *dev,
struct cpuidle_driver *drv, int index)
{
struct cpuidle_state *target_state = &drv->states[index];
- return target_state->enter(dev, drv, index);
+
+ return drv->enter(dev, drv, index) ? drv->enter(dev, drv, index) :
+ target_state->enter(dev, drv, index);
}
static inline int cpuidle_enter_tk(struct cpuidle_device *dev,
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 6c26a3d..d82e169 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -130,6 +130,7 @@ struct cpuidle_driver {
struct cpuidle_state states[CPUIDLE_STATE_MAX];
int state_count;
int safe_state_index;
+ int (*enter)(struct cpuidle_device *, struct cpuidle_driver *, int);
};
#ifdef CONFIG_CPU_IDLE
--
1.7.5.4
This patchset creates an arch_scale_freq_power function for ARM, which is used
to set the relative capacity of each core of a big.LITTLE system.
Vincent Guittot (4):
ARM: topology: Add arch_scale_freq_power function
ARM: topology: factorize the update of sibling masks
ARM: topology: Update cpu_power according to DT information
sched: cpu_power: enable ARCH_POWER
arch/arm/include/asm/topology.h | 2 +
arch/arm/kernel/topology.c | 203 +++++++++++++++++++++++++++++++++++----
kernel/sched/features.h | 2 +-
3 files changed, 185 insertions(+), 22 deletions(-)
--
1.7.9.5
There's an interaction between Linaro GCC or FSF GCC 4.7 and Linux
kernels before 3.2 which causes the kernel to halt straight after
showing 'Uncompressing Linux'. The question comes up every couple of
months so I've blogged about it:
http://seabright.co.nz/2012/06/11/kernel-not-booting-with-linaro-gcc/
"""
Is your ARM Linux kernel not booting when building with Linaro GCC or
FSF GCC 4.7? Does it halt shortly after showing ‘Uncompressing Linux’?
You may have run into an interaction between older kernels and the new
unaligned access support in GCC. This affects Linaro GCC from
4.6-2011.11 onwards, GCC from 4.7.0 on, and kernels earlier than 3.2
including the Galaxy Nexus Icecream Sandwich release.
The work-around is to add -mno-unaligned-access to KBUILD_CFLAGS in
the top level kernel Makefile or to backport
8428e84d42179c2a00f5f6450866e70d802d1d05 from the current kernel tree.
ARMv6K and later processors have hardware support for doing unaligned
loads and stores which is faster than the old byte-by-byte/recombine
that was done in software. Later versions of GCC use this to do
quicker loads when working on known unaligned data, such as when
working on a protocol buffer or a packed structure.
The CPU can be configured to trap on unaligned access. This trap is
off at reset, but pre 3.2 kernels turn this on during the initial
boot. An interaction between -fconserve-stack and -munaligned-access
on a char buffer lead to an unaligned access, which causes a trap,
which causes the kernel to halt.
This does not affect userspace programs as they run with the trap turned off.
"""
-- Michael
Release Dates and Deliveries
========================
Toolchain June 14
WG/LT's June 21
12.06 RC's June 25
12.06 Release June 28
--
David Zinman
Linaro Release Manager | Project Manager
Linaro.org | Open source software for ARM SoCs