Hello everyone.
To stick to good open-source development standards I'd like to announce
Launch Control code reviews on the mailing list.
This is just a public ping of the following merge request:
https://code.edge.launchpad.net/~zkrynicki/launch-control/utils_package/+me…
Anyone interested in Launch Control development is welcome to review
this and post comments on the launchpad merge request page (they get
forwarded as emails to all participants).
Best regards
Zygmunt Krynicki
--
Zygmunt Bazyli Krynicki <zygmunt.krynicki(a)linaro.org>
Linaro
Background:
---------------
PowerTOP is a tool used to provide information related to power
consumption, from various sources, into one screen. One of the issues
with PowerTOP is that the number of C and P states are hardcoded and
thus it doesn't provide complete information on systems which may have
more states than the hardcoded ones. Thus, though it works well on
intel platforms, it may not on some of the ARM boards.
Changes being suggested:
---------------------------------
These are couple of simple patches which try to make PowerTOP generic
enough to run on almost any platform, which is plugged into the
cpufreq and cpuidle framework. Thus the number of C and P states will
no longer be hardcoded (though, the MAX values will be, to allocate
enough memory for data structures). Most of the changes required is to
make the display be aware of the ACTUAL number of these states and not
just depend on some hard coded values.
Where to get the source and patches:
-----------------------------------------------
You can get it from the git repo located at
git://git.linaro.org/amitarora/powertop.git
The "master" branch has the PowerTOP code in sync with latest upstream
powertop git tree. The "linaro" branch has my patches, which need
testing. So, once you clone the tree, please do not forget to checkout
the "linaro" branch (git checkout -b linaro remotes/origin/linaro)!
Note: If you had cloned it before, please clone a fresh tree, since I
have re-written the history for "linaro" branch, to get patches in
shape for upstream submission. Something, which I know should be
avoided in future.
What to review:
--------------------
Once you checkout the "linaro" branch, as suggested above. You can
review the two patches with commit id "09049b42e3" and "783a3e6bbe".
What to test:
----------------
Some of the things which could be tested is,
o Compile and test on any ARM board that you may have. You can also
test on any x86 / x86_64 systems, to check if nothing has been broken.
o Compare the output from "master" and "linaro" branches ("-d" dump
option may help, if you wish to take a diff)
o Check if the number of C states is correct
(/sys/devices/system/cpu/cpu0/cpuidle/)
o Check if the number of P states is correct
(/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies)
o Check if the % values makes sense (say, if total doesn't add to 100!
Or, if its a very huge value [1] ).
o If number of Wakeups-per-second [1] looks reasonable.
o Top causes for wakeups is shown properly
o Suggestions are shown properly. Some of the suggestions may show a
hot key on the status bar (at bottom).
[1] There is a known issue of %age values and Wakeups-per-sec number
being shown very high (in the order of thousands), if some key is hit
(say, 'r' to refresh or any other key). This problem can be seen in
"master" branch (upstream) too, and hence is not introduced by the new
patches. Since the goal of these patches is different, I haven't
addressed this issue here.
Note: Thanks a ton to people who tested my initial patches and
provided their valuable feedback.
Thanks !
Regards,
Amit Arora
The minutes of the weekly call fresh-off-the-oven can be found at:
https://wiki.linaro.org/WorkingGroups/PowerManagement/Meetings/2010-08-04
Attendees:
Linaro: Amit Kucheria, Amit Arora, Vishwanath Sripathy, Yong Shen
ARM: Srinivas Kalaga, Robin Randhawa
Action Items from this Meeting
* Action: Robin and Srinivas to send mail to team, to target the
ftrace patches for upstream.
* Action: Amit K to send email regarding power aware scheduling by
Intel (CONFIG_SCHED_MC & CONFIG_SCHED_SMT ?) Yes!
* ACTION: Yong Shen to test Amit Arora's powertop patches and
powerdebug tool.
* ACTION: Yong Shen to investigate plugging in cpufreq framework
for freescale boards
* ACTION: Amit Arora to creat a new wiki page for instructions on
how to setup your own git repo on git.linaro.org
* ACTION: Amit K to talk to jeremy about power domain framework
* ACTION: Amit Arora and Yong to discuss about reporting sensor
information (hwmon, or some other source for ARM?)
Action Items from Previous Meeting
* ACTIVE (Immediate):
o ACTION: Bobby to investigate android contraints (e.g.
display keep-alive): CLOSED
+ Bobby sent a mail. Considering closed.
o ACTION: Srinivas to add ftrace item to task list and send
patches to linaro: CLOSED
+ Srinivas has emailed the patches to team. Needed to
get time-stamps when system is entering low power state with various
workloads
o ACTION: Vishwa to create a new blue print for the
instrumentation of cpuidle related work: CLOSED
+ Blue print created and assigned to Vishwa.
o ACTION: Amit Arora to create tarballs of his current work
and share it internally for testing: CLOSED
+ considered done, git tree now available on git.linaro.org
o ACTION: Amit Kucheria and Vishwa to get inputs from
community on the issues related to CPUIDLE governor: POSTPONED until
instrumentation work
* ACTIVE (Long Term) :
o ACTION: Srinivas to provide details of where he believes
userspace - kernel interaction is required. (low prio)
o ACTION: Bobby to check on multi-core boards availability
(request open)
o ACTION: ARM to discuss giving out internal Eclipse based
tool (similar to powertop) (no ETA as of now)
* DORMANT :
o ACTION: ARM to share internal instrumentation flow (BAB:
we might also align with Linaro on workload discussions)
+ Might take couple of months
Minutes
* ftrace patches part of larger tool work inside ARM, perhaps the
ftrace patch doesn't need to wait for the entire tool and can be sent
upstream
* power aware scheduling using perf counters, cache misses/hits,
TLB hits/misses?
o ties into instrumentation work for cpuidle being done by Vishwa
* Discussion regarding power domain framework
o Similar to clock framework
o Does SRF replacement handle it? No, according to Vishwa.
* displaying sensors information - is it duplicating work done by
lm-sensors tool?
o figure out what drivers are using hwmon
o perhaps it would make sense to use the lm-sensor library
(is there any?) to grab this info?
* API to read performance counters
o arch/arm/kernel/pmu.h perf_event.c
o No documentation? (Perhaps we should provide docs?)
I just made available a new Linaro kernel merge result at the following
location:
http://git.linaro.org/?p=linux/arm_next.git;a=summary
This is the merge result from the following branches:
Linus' tree at v2.6.35
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Greg KH's stable branch at v2.6.35.1
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.35.y.git
RMK's "devel" branch at commit 7b70c427
(merged into mainline with commit be82ae02)
Catalin Marinas' "stable-2.6.35" branch at commit 2d73da46
git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm.git
Will Deacon's "for-linaro" branch at commit 7987abe4
git://repo.or.cz/linux-2.6/linux-wd.git
Tony Lindgren's "omap-for-linus" branch at commit d21872b3
(merged into mainline with commit d71048e2)
Uwe Kleine-König's "arm/booting" branch has been dropped as it is now
included in RMK's "devel" branch.
This has been tagged with "linaro_merge_100811" and the tag message also
has the above info. This is also available through the following gitweb
link:
http://git.linaro.org/gitweb?p=linux/arm_next.git;a=tag;h=linaro_merge_1008…
The previous merge result is still available through the tag
"linaro_merge_100716" for reference.
The Linaro freeze is imminent, and at that point a stable branch that
won't be rebased anymore will be forked. The stable branch should only
see bug fixes and no new features. Therefore I'd like to know if there
is anything that should be added or removed from this tree before the
freeze is in place. Please tell me ASAP.
Nicolas
...are available here:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings/2010-08-09
A copy follows, along with activity reports for the different members.
-- Michael
Attendees
• Name Email IRC Nick
Yao Qi yao.qi(a)linaro.org yao
Ulrich Weigand ulrich.weigand(a)linaro.org uweigand
Scott Bambrough scott.bambrough(a)linaro.org scottb
Richard Earnshaw richard.earnshaw(a)arm.com rearnshaw
Peter Maydell peter.maydell(a)linaro.org pm215
Michael Hope michael.hope(a)linaro.org michaelh
Marcin Juszkiewicz marcin.juszkiewicz(a)linaro.org hrw
Loïc Minier loic.minier(a)linaro.org lool
Julian Brown julian(a)codesourcery.com jbrown
Dave Martin dave.martin(a)linaro.org dmart
Chung-Lin Tang cltang(a)codesourcery.com cltang
Andrew Stubbs andrew.stubbs(a)linaro.org ams
Agenda
• Review action items from last meeting
• New public call-in number: code 263 441 7169
• Release status
□ 4.4 at http://ex.seabright.co.nz/build/gcc-linaro-4.4-2010.08-0/
□ 4.5 at http://ex.seabright.co.nz/build/gcc-linaro-4.5-2010.08-0/
□ Ubuntu toolchain would prefer 4.5.1
• Next focus
□ Merging patches upstream
□ Prioritising GDB features
• Future focus
□ Emphasise performance, neutral on correctness
□ Topics to investigate
☆ Vectoriser
☆ Pipeline
☆ PGO
☆ Upstream research topics
□ Topics for UDS
□ Benchmarks
Blueprint Assignee
Initial delivery of Linaro GCC 4.4 ams
Cross Compiler Packages hrw
Action Items from this Meeting
• TBD
Action Items from Previous Meeting
• DONE: Michael to organise and spread next Monday's call in number
• ACTION: Richard to ask the GCC developers on IRC what the status of 4.4.5
is
• DONE: 500524 Ulrich to backport to Linaro 4.4
• DONE: Test failures: Michael to build FSF 4.4.4 as a baseline
• DONE: Test failures: Michael to compare FSF and Linaro GCC failures
• DONE: Test failures: All Linaro GCC failures to be ticketed
• DONE: LTO check on ARM: Michael to reproduce. check-lto fails with no
Makefile target
• DONE: Ulrich to write up known GDB work
• DONE: 598147: Michael to reproduce the test failures
• DONE: 398403: Andrew to reproduce on his IGEP board (has more RAM)
• DONE: Michael to make sure merge requests are present for work that has
been done
Minutes
• Release status
□ Talked about the upcoming 2010.08 release
□ Andrew has posted tarballs which Michael has grabbed and built
□ Andrew is cross-testing
• Discussed 4.5.1
□ 4.5.1 came out, depending on where you look, 11, 8, or two days ago
□ Rolling in 4.5.1 and the Firefox exposed alignment bug would have more
value
□ Discussed time based vs feature based releases and a pragmatic middle
ground
□ Discussed releasing 4.5.0 based now vs 4.5.1 at next months release vs
something inbetween
□ Decided to delay the Linaro 4.5 release until at most 2010-08-17
□ Roll in 4.5.1 and the Firefox fix
□ Gives something more useful to Ubuntu and others
□ ACTION: Andrew to merge 4.5.1 and the Firefox fix by 2010-08-17
• Discussed what goes in next month
□ Richard wants the sync primitives fixes
□ CSL is still merging their patchset
• Discussed what can be done in the future
□ Please start thinking of topics for UDS
□ Backporting the new costing infrastructure (Richard)
☆ Works by changing how costs are done and making them more generic
☆ Backend provides options for a certain segment
☆ Cost of an option is target dependent
☆ Removes a lot of hard-coded values for particular architectures
☆ Good for core-next
☆ Infrastructure matches trunk
☆ Might pull in ldm changes
□ Richard's wishlist
☆ ACLE
☆ v6 SIMD, v5 (limited)
□ Conditional instructions
☆ Some are best done at the expand phase where tree goes to RTL
☆ Not on Roger' slist
☆ Check on possible gains
□ NEON intrinsics
☆ Don't generate very good code at the moment due to load/stores
☆ Might need internal intrinsics to compose these out of
☆ Developers currently use straight asm, perhaps out of personal
preference
☆ Intrinsics aren't well documented/known
☆ Worthwhile as people coming from RVDS and using intrinsics will see
big drop
□ GDB
☆ Ulrich sent through his list
☆ To categorise into features and fixes
☆ ACTION: Ulrich to ticket items
☆ Work on critical fixes first
☆ Yao, Ulrich to work on list
☆ ACTION: Michael to understand whiteboards as a way of organising
features
Next meeting is a standup meeting on 2010-08-11 on the public code.
--- ams:
== Linaro GCC 4.4 ==
* Reviewed various merge requests.
* Created and tested GCC Linaro 4.4-2010.08-0 release tarball.
== Linaro GCC 4.5 ==
* Continued pushing CS patches to Linaro GCC 4.5. I've done quite a
lot of these this week, but I've had to omit some patches that caused
regressions.
* Created and tested GCC Linaro 4.5-2010.08-0 release tarball.
== Other ==
* Set up EEMBC for use with Linaro GCC so Chung-Lin can compare
hard-float and soft-float ABIs.
* Attended the monthly CS/Linaro sync call.
--- yao:
== Linaro GCC 4.4 bug fix ==
* LP:602190 & LP:602285
They are caused by a patch for performance improvement of generated
code. Team suggests keep this patch, and fix test case a little bit
to fix failures.
Fix to LP:602285 is committed and merged to linaro 4.4.
Thinking about how to fix LP:602190 from test case side. An option
to force to turn 'cunroll' off is helpful.
* LP:612011 & GCC PR45094
Update test case pr45094.c from a compilation test to an execute
test. Sent to gcc-patches again. Waiting for ARM backend
maintainer's comment.
Merge this patch to linaro 4.4 first, because of release. Plan to
backport to linaro gcc 4.5 once patch is approved by upstreams.
* LP:612405 & LP:612406
Fix them by changing ARM target triplet from "arm-*-*" to
"arm*-*-*", which is more general.
Merged to linaro gcc 4.4.
Create a patch against FSF GCC trunk to fix this in other test
cases.
* LP:612402
Same bug was reported in GCC Bugz PR41501/PR34999, which have been
fixed on FSF GCC 4.5.0. No plan to backport to FSF 4.4.x.
Leave this bug as Won't Fix on linaro gcc 4.4 and Fix Released on
linaro gcc 4.5.
* LP:602174
Can't reproduce it on arm-none-linux-gnueabi. Latest result shows
obj-c++.dg/bitfield* only failes on x86-64.
* LP:602168 g++.dg/eh/pr42859.C test failure
Analyze this bug a little bit, and my initial result is that two
BBs in exception catch are *not* marked as UNREACHABLE in linaro 4.4,
while these two BBs are UNREACHABLE FSF GCC 4.4 trunk.
== This Week ==
* Ping ARM backend maintainer for my patch to GCC PR45094.
* Submit my patch on ARM target triplet in gcc patches.
* Update status of LP bugs. Mark them as Fix Released if failure go
away in gcc-linaro-4.4-2010.08-0.
* Other linaro 4.4 bugs to look or other new work to do.
Wrap up LP:602190.
Analyze deeply on LP:602168/LP:602174.
--- pmaydell:
RAG:
Red: None
Amber: waiting final ARM legal OK for qemu contributions
Green: Completed all the linaro new-starter admin tasks
Milestones: none as yet
Progress:
- Miscellaneous setup/configure/getting started.
virtio-system:
- got qemu to boot linaro alpha-2 with random ubuntu versatile kernel
- I have a set up that lets me rebuild kernels now
Issues:
- maemo-qemu supports beagle but the stock linaro alpha 3 takes a
div-by-zero exception and panics on startup
Plans:
general:
- flesh out some of the blueprints assigned to me
virtio-system:
- investigate the div-by-zero panic
- find out the easiest way to replace the kernel in the shipped
alpha 3 with one I've compiled
- make sure virtio is enabled in kernel and try to get it working
Absences:
None planned.
--- uweigand:
== GCC ==
* Prepared Linaro GCC 4.5 backport for bug #604874 (Firefox fails to
build)
* Prepared Linaro GCC 4.4 backport for bug #500525 (bootstrap failure in
stage3)
* Investigated bug #600209 (getfem++ test failures)
* Investigated bug #602168 (g++.dg/eh/pr42859.C failure)
* Investigated bug #506538 (GENERAL_REGS spill failure)
* Determined root cause of bug #608125 (gnat build failure)
* Determined root cause of Debian bug #591075 (glib2.0 segfault on ARM /
i386)
== GDB ==
* Started planning future GDB feature / bugfix work
== Miscellaneous ==
* Converted multiarch toolchain implications document to Wiki page
--- cltang:
== libffi VFP hard-float support ==
Mostly finished and doing testing. Using libffi's testsuite, currently
has three regressions, two of them related to testing of variadic
functions, which are pretty unsolvable due to AAPCS' rule of reverting
to the base calling convention for all variadic functions (the libffi
code currently has no way of detecting variadic function type from the
user, so cannot correctly do this ABI revert). May solve by marking
the testcases to be skipped under -mfloat-abi=hard. Will work on a few
code optimizations before trying to submit it upstream.
== Other ==
Looking at some Linaro GCC bugs.
From: srinivas <srinivas.kalaga(a)arm.com>
The following patches add power events in /debug/tracing/events/power.
These patches have been tested and applied only on the latest OMAP pm branch. The first diff set is for cpufreq and second one for cpuidle framework.
The first diff patch applies only if OPP layer is included in the OMAP kernel.
Review comments are welcome.
srinivas (1):
Ftrace: Timestamp of entry into low power states and performance
states
arch/arm/plat-omap/cpu-omap.c | 2 ++
drivers/cpuidle/cpuidle.c | 3 ++-
2 files changed, 4 insertions(+), 1 deletions(-)
I'd like to record the running of a typical program such as Firefox,
GCC, or ffmpeg and capture the calls and arguments to functions like
strcpy() and memcpy(). The idea is to generate a usage profile so we
can tell what standard library functions and what variants (i.e.
aligned/unaligned, small copy/large copy) to attack first.
Does anyone know of existing research with this information, or
existing tools that could capture it?
My fallback is to use a LD_PRELOAD trick to replace the interesting
functions with tracing versions.
-- Michael
Hi,
As a followup to a conversation I had with Alexander (asac) on IRC, i'd like
to request the addition of some packages to the headless image. This is to
make the images more useful out-of-the-box.
- ifplugd (dhcp networking)
- screen (multiple terminals over a serial console)
- vim (or any other more complete editor than the vi that ships with busybox)
- openssh (atleast server)
More useful tools to consider (but might be more insteresting only to kernel devs)
- lsusb
- latencytop
- input-utils
- iotop
Regards,
Amit