== Deepak Saxena <dsaxena> ==
=== Highlights ===
* Worked on article on "Kernel Upstreaming Challenges" for executive
member update.
Ended up writing one version and completely throwing it away as it
was too introductory
but hope to use that to write a larger white-paper type of document
on the topic. Update
article draft @ http://goo.gl/9SBpT.
* Self-review, engineer review. (Do we really need to do these every
3-4 months?)
* Worked with Mounir on 12.04 blueprint updates
* Submitted talk proposal on "One zImage to Rule Them All" to LinuxCon Japan
* Regular 1:1s and meetings
=== Plans ===
* Finish review cycle work
* Finish patch tracking spreadsheet for upstream kernel work
* Connect planning
* Roadmap cards
=== Issues ===
* No major ones, though still feeling behind on everything due to
being sick earlier
in the month. :/
=== Travel/Time Off ===
* Off May 4th and following week, back to work on Monday the 13th. Will have no
interwebs and limited phone access.
* Connect Q2, possibly with follow up
== Rajendra Nayak <rnayak> ==
=== Highlights ===
* Worked on patches to make OMAP transition to common clk one
SoC family at a time and also maintaining git-bisect. Turned
out much ugly than I initially thought. Shared the patches along
with a few minor fixes with Mike.
* Started working on optimizing (reducing) OMAP4 common clk data
on top of Mikes' initial work. Mostly done manual cleanups for now.
Need to update the autogen scripts.
* Started validating OMAP5 common clk using Mikes' framework changes
and autogen updates.
=== Plans ===
* Autogen updates for OMAP4 data, OMAP5 validation and fixes to
framework changes.
=== Misc ===
* Planning to take off on 2,9,10 April due to some personal
emergency travel.
=== Highlights ===
* Sent out last bits of timekeeping changes for 3.4 & got them merged.
* Spent a bit of time re-installing & reconfiguring my system
environment per new internal policies:
http://www.codinghorror.com/.a/6a0120a85dcdae970b016301e98de2970d-800wi
* Sent out first pass at config fragment integration into the linaro
kernel. Got some good feedback & patches from Tixy and Tushar.
* Ran Android Subteam phone meeting & set up recurring phone meeting
biweekly.
* Reviewed Danial Walkers performance comparision between shm based and
android logger based logging. Got into a longish discussion off-list
discussion with him about Android's design requirements. Hopefully will
see another iteration from Daniel.
* At Tixy's prodding, contacted Dima to see about the earlysuspend
removal in 3.3 and what fixes for the log flooding that caused are
recommended. Got a quick response that they have a fix, and are looking
to push it out soon. Tixy suggested a fix in the meantime.
* Did a first pass fwd port of the Android 3.3 patch stack to 3.4.
Messed up some of the mmc items and will likely have to try again.
* Got a first pass at reworking the fadvise volatile code to store tree
roots in a hash rather then bloat the address_space structure. It seems
to be working, but I kind of don't believe it.
=== Plans ===
* More testing on fadvise volatile hash rework & send to lkml
* Get all of Tushar's changes merged into the config fragment tree
* Take another shot at fwd porting the Android tree to 3.4
=== Issues ===
* NA
== Arnd Bergmann ==
=== Highlights ===
* Merge window, part two: everything we had queued is now in mainline
* Discussed swap on flash with a few people, sent out first proposal
* Continued DT discussion for spear, kirkwood, shmobile
=== Plans ===
* more review for DT conversions
* regression testing post merge window
* getting my build server back running
* dig out my CONFIG_NO_IOPORT patch set and get that into linux-next
== Venkatraman S svenkatr ==
== Highlights ==
* Sent out pull request for UFS and eMMC features for Linaro Kernel release
* Coding up eMMC foreground HPI code. Sent a rough first cut to Storage folks.
* Studies UFS implementation. Plan to abstract out the PCI specific
part of driver files
== Plans ==
* More HPI coding and do some stress tests
* Test eMMC Power off notify with OMAP.
== Misc ==
* Was on leave for 2 days
== Linus Walleij linusw ==
=== Highlights ===
* Applied and pushed the DT patch from Stephen, effectively making
it possible to create DT- based pinctrl drivers in the 3.5 release cycle
for the kernel.
* Attended the Embedded Systems Conference in San Jose and had
a "platform perimeter" seminar, paper and slides available here:
http://www.df.lth.se/~triad/papers/ESC-400Paper_Walleij.pdfhttp://www.df.lth.se/~triad/papers/ESC-400Slides_Walleij.pdf
Apart from running the seminar I count this as education and
competence building
=== Plans ===
* Easter vacation april 2-5th.
expect next report on april 13th
* Review incoming pinctrl patches.
* Prepare to convert ux500 (gpio-nomadik) to pinctrl
for the kernel 3.5 timeframe.
* Attending the Embedded Systems Conference in
San Jose 27th thru 30th of march.
* Test the U9540 core patches on real hardware and
rework as outlined by Arnd.
* Test the PL08x patches on the Ericsson Research
PB11MPCore and submit platform data for using
pl08x DMA on that platform.
* Look into other Ux500 stuff in need of mainlining...
like
- Ux500 clocks
- the HWMON stuff.
=== Issues ===
* N/A
Thanks,
Linus Walleij
Greetings,
The Linaro Kernel Working Group (KWG) and the Linaro Platform
Group are excited to announce the availability our March 2012
development snapshot:
linux-linaro-3.3-2012.03-2
As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.
The source tarball is available at:
https://launchpad.net/linux-linaro/devtrack/12.03/+download/linux-linaro-3.…
The kernel sources can also be accessed using git at:
git://git.linaro.org/kernel/linux-linaro-tracking.git
tag: linux-linaro-3.3-2012.03-2
This kernel includes the following changes from the 2012.02 kernel:
- Update to 3.3
- Various patches from Linaro
* Versatile Express patches from ARM LT
* Gator module for ARM's Streamline Performance Ananlyzer from ARM LT
* updated irq_domain patch set from Grant L.
* cpuidle core consolidation, cpuidle support for i.MX5/6 and ST-E
u8500 from PM WG
* updated patch set support for common save and restore code to the
Samsung exynos platform from PM WG
* updated thermal_cpu_cooling patch set from the power management WG
* UFS patches from kernel WG
* eMMC4.5 patches from kernel WG
* initial dma-buf patch set and some related components for UMM
- AOSP 3.3 android patch set
A full change log against the 3.3 release is available at:
https://launchpad.net/linux-linaro/devtrack/12.03
High Priority Known Issues:
- ANDROID_RAM_CONSOLE must be disabled for the android kernel to boot.
=== Highlights ===
* Merge window, preparing and sending pull requests
* Some coaching of DT ports (spear, kirkwood, lpc3xxx)
=== Plans for this week ===
* Second half of merge window
=== Highlights ===
* Converting imx6 clock code to common clk. (80% done with the non-dt
part)
* Reviewed imx_v4_v5 common clk series from Sascha
* Reviewed and acked Saravana's patch moving init fields from clk to
clk_hw
* Suggested Mike change clk API a bit to have parent rate passed into
.round_rate and .set_rate, and he acked it.
* Tested imx6 anatop regulator patch from Paul and report some little
problem. Have to wait for solving the it before I can merge the
imx6q dts change.
* Reviewed snvs-rtc patch from Paul. It's far away from the good
state.
--
Regards,
Shawn
== Linus Walleij linusw ==
=== Highlights ===
* Sent a pull request for pinctrl.
Torvalds pulled in the patch queue for kernel 3.4
and even quipped about it, as pointed out to me by Nico,
see commit 7fc86a7908a4e9eb2da4b6498f86193d113842d3:
(*) What is it with all these Linuses these days? There's a Linus at
google too. Some day I will get myself my own broadsword, and run
around screaming "There can be only one".
I used to be _special_ dammit. Snif.
* Fixed up my own screwups trying to stabilize the PL011
serial driver. Extracted another PL011 patch from inside
ST-Ericsson.
* Looked at some regulator patches.
* DT patches for pinctrl are floated by Stephen on the LKML.
=== Plans ===
* Review incoming pinctrl patches.
* Prepare to convert ux500 (gpio-nomadik) to pinctrl
for the kernel 3.5 timeframe.
* Attending the Embedded Systems Conference in
San Jose 27th thru 30th of march.
* Easter vacation april 2-5th.
* Test the U9540 core patches on real hardware and
rework as outlined by Arnd.
* Test the PL08x patches on the Ericsson Research
PB11MPCore and submit platform data for using
pl08x DMA on that platform.
* Look into other Ux500 stuff in need of mainlining...
like
- Ux500 clocks
- the HWMON stuff.
=== Issues ===
* Git real ill middle of last week so things got to a standstill
and not much happened. Unplanned absence.
Still recovering somewhat.
Thanks,
Linus Walleij
=== Highlights ===
* Got some feedback and sent out another iteration of the fadvise
volatile work.
* Implemented first pass at integrating config-fragments into the linaro
kernel tree.
* Sent out additional features to the merge_config.sh script to kconfig
maintainer
* Got Android Alarm driver and ramconsole rework pushed into 3.4 merge
window via staging
* Got other timekeeping changes merged into 3.4 merge window
* Did an initial review of Anton's ulmkd code
* Did some digging through my mail backlog, applying patches and sending
out test fixes
* Did rypple self evaluation
=== Plans ===
* Get first-pass radixtree fadvise volatile implementation working
* Try to get a few more timekeeping changes merged for 3.4
=== Issues ===
* NA
== Deepak Saxena <dsaxena> ==
I was out sick for about a week, behind on everything right now. :/
=== Highlights ===
* Started work on member's update article on understanding upstream
kernel development.
* Started work on patch tracking spreadsheet for Android
lowmem-related patches as
a POC for better understanding status of how upstream is doing.
=== Plans ===
* 1:1s
* Complete member newsletter article
* Complete patch tracking spreadsheet for Android lowmem patches
* Review cycle work, including my own self-review
* Put together proposed schedule for kernel training @ Connect.
* Review roadmap card status
* Review latest updates to KWG wiki pages.
* Start thinking about KWG @ Linaro connect
=== Travel/Time Off ===
* Possibly off May 4-10th.
* Connect Q2
* Possibly attending Linux Con Japan right after Connect
=== Pinctrl ===
* Pinctrl core patch review.
* sent mx28 basic dt support patches including imx28 dt core, irq domain,
fec, mmc, dma supports.
* sent a dt core patch fixing the potential issue of of_device_is_availabe
* sent a fec patches fixing the potential no phy found issue.
* sent a net phylib patch fixing the length limitation of mii bus id
* discussed a lot with Grant and Lathar on how to get mac address from dt
which is a common issue on
all imx platfroms.
=== Plan ===
* Review pinctrl core dt binding patches sent recently by Stephen Warren
* mx6q pinctrl driver dt support
* mx28 dt support patch comments addressing and more devices support
=== Pinctrl ===
* Review pinctrl core dt binding patches sent by Stephen Warren
Reviewed and provided my ack for most of them. I guess it's close to be
merged. Count on Linus. :)
* mx28 dt support v2 patch.
* mx6 pinctrl driver dt support (INPROGRESS)
* convert mxs-dma driver to be platform independent since mx50 and mx6
also use it.
=== Plan ===
* Keep tracking pinctrl core dt binding patches
* mx6q pinctrl driver dt support
* mx28 dt support
== Highlights ==
* Reviewed and merged a bunch of battery-tree related patches. Not actually
Android-related work, but community;
* Revised memory management fixes I've made during work on LMK kernel driver
improvements.
* Trying to wrap head around Android images/build process, and how to add
a custom daemon; Familiarizing with Android's internal userland
structure.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
== Highlights ==
* Familiarized with Android NDK, this was needed to build and test
ulmkd on a real Android setup;
* Successfully built ulmkd w/ NDK, a few changes were needed since
Android's libc is quite limited;
* Reworked ulmkd makefile so that it is suitable for NDK;
* Added shm backend and demo utility for the userspace LMK daemon;
* Made a few bugfixes for the userspace LMK daemon;
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
=== Highlights ===
* Another 3 iterations of adding imx-sgtl5000 machine driver working
with fsl_ssi. The v5 of the series just got merged by Mark. But
unfortunately it does not catch v3.4 merge window, and will have to
be in v3.5.
* Tested DMA engine cookie handling cleanups from Russell King on
imx-sdma and mxs-dma drivers.
* Reviewed imx pwm framework migration patch from Sascha.
* Reviewed a bit imx28 device tree support series from Aisheng.
* Reviewed common clk framework v7 post.
* Start porting imx6 clock driver to common clk framework
--
Regards,
Shawn
== Rajendra Nayak <rnayak> ==
=== Highlights ===
* Reposted v3 of mmc-dt patches. Chris pulled them in for 3.4.
With this OMAP should have *all* basic drivers DT adapted.
* More mmc driver cleanups, will post once 3.4-rc1 comes out.
Too late and not too critical to go in this merge window.
* Review pinctrl dt, and common clk patches. Also had a chat with
Tony about the pinctrl dt bindings and he plans to update pinctrl-
simple with the latest bindings quite soon.
* After some discussions with Tony on moving the mmc pbias platform
calls to SCM driver, it turns out he prefers it being handled in some
way via the pinctrl driver. With mmc-dt patches already in 3.4
moving this task to a lower priority.
* Started looking at Mike's *OMAP4 only* migration to common clock to
get it working on all OMAPs'. Still figuring out if I can do this
one OMAP family at a time, to avoid a big bang change across board.
=== Plans ===
* Focus mainly on common clk conversion for all OMAPs.
=== Misc ===
* Planing to take off the 1st week of May. From 1st to 7th May.
Will update Linaro leaves.
== Thomas Abraham <thomas-ab> ==
=== Highlights ===
* Posted v2 of patches that rework platform data of display controller
driver which is prerequisite for dt support.
=== Plans ===
* Post next version of dt support patches for interrupt combiner,
wakeup interrupts, regulator and display controller driver.
=== Misc ===
* Was on leave on 14th, 15th and 16th March.
== Rajendra Nayak <rnayak> ==
=== Highlights ===
* Repost of twl regulator DT support clubbing all other changes
to the same driver from Tero K and Peter U. Mark pulled patches
into his -next. dts file changes pushed via Tony.
* Review/testing of card detect for MMC cleanup patches from Tony.
* System control module driver, adding MMC quirks needed for pbias,
currently the driver resides in drivers/platform/arm/omap. Not
sure whats the right place. More work needed for OMAP3 and OMAP2
support.
* Continue work on System control module driver.
* Start working on 'static data' cleanup for hwmod.
=== Misc ===
* Misc review/test of patches on linux-omap for IO daisy/CORE ret
support and some hwmod fixes for keypad.
=== Plans ===
* Get all MMC cleanups in.
* Continue work on System control module driver.
* Start working on 'static data' cleanup for hwmod.
=== Misc ===
* None
== Linus Walleij linusw ==
=== Highlights ===
* Grant merged the SPI message queue core patch,
also Mark Browns patch moving the Samsung SPI
driver to use this central message queue.
* Discussed dmaengine. This is pretty important, it looks
like someone needs to step up and look into the
channel mapping problem which is a pretty big
piece of work.
* Pushed out an interesting core driver patch that was
harvested from Rabin inside ST-Ericsson.
* Pushed out a new set of three MFD patches for
AB8500 trying to keep things in sync.
* Reviewed and ACK:ed a set of 7 device tree patches
for ux500 by Lee Jones, now probably merged by
Arnd.
* Reviewed and ACK:ed the v7 clk patches from Mike
Turquette.
* Volunteered for the MMCI driver maintenanceship.
Russell will keep it for now even though it's marked
"orphaned" in MAINTAINERS.
* Discussed a bit around ALSA SoC AB8500 codec
implementation driven by Ola LILJA from ST-Ericsson.
* Discussed some LED patches from Bryan Wu.
=== Plans ===
* Get ready to issue pull request for pinctrl this
coming merge window.
* Prepare to convert ux500 (gpio-nomadik) to pinctrl
for the kernel 3.5 timeframe.
* Attending the Embedded Systems Conference in
San Jose 27th thru 30th of march.
* Tentative easter vacation first week april.
* Test the U9540 core patches on real hardware and
rework as outlined by Arnd.
* Test the PL08x patches on the Ericsson Research
PB11MPCore and submit platform data for using
pl08x DMA on that platform.
* Look into other Ux500 stuff in need of mainlining...
like
- Ux500 clocks
- the HWMON stuff.
=== Issues ===
* We really need someone to look at dmaengine for
member SoCs.
Thanks,
Linus Walleij
=== Highlights ===
* Spent a large chunk of time on fadvise volatile work. Fixed circular
locking issues and simplified things a bit. Polished up the code and
submitted to lkml for review. Researching some alternative approaches.
* Was alerted to a locking issue in the timekeeping code, sent an RFC
fix to address the problem.
* Iterated a few times on clocksource switching bug patches and sent a
pull request for my current queue of fixes to tglx
* Did some internal IBM assistance & internal IBM process items.
* Was late, but sent out Android Subteam meeting email.
=== Plans ===
* Try to get a first pass at a page-tag approach to the volatile pages
implementation.
* Working on presentation abstract for plumbers
=== Issues ===
* Frustrated by my slow progress.
== Arnd Bergmann (arnd) ==
=== Highlights ===
* Took over arm-soc merging from Olof again
* accepted heaploads of patches into arm-soc, now closed
* DT conversion for spear6xx, kirkwood, ux500, at91
* driver changes for davinci, lpc32xx, exynos
* ep93xx cleanup
* numerous smaller fixes
* exynos5 Soc support
* common struct clk
* assisted DT conversion on a lot of platforms
Hi Guys ,
I am working on a samsung sp5v310 development kit.
I wanted to read a peripheral register (battery charger) in u-boot.
This device is interfaced on i2c0. I am working with the u-boot in
git://git.linaro.org/boot/u-boot-linaro-stable.git
I wanted to do i2c_read in the code, but as i understand the i2c
support is not there in u-boot for s5pv310 SOCs. Please confirm, if this
is correct or i am wrong.
If there is support to do i2c operations on s5pv310 SOCs, please point
me to the right file, where i can find i2c configurations for s5pv310 SOCs.
thanks,
- Avinash
PS:
1. There are no i2c macros in include/configs/smdkv310.h.
2. After adding,below macros to enable i2c support for smdkv310,
/* I1C */
#define CONFIG_HARD_I2C 1
#define CONFIG_SYS_I2C_SPEED 100000
#define CONFIG_SYS_I2C_SLAVE 1
#define CONFIG_SYS_I2C_BUS 0
#define CONFIG_SYS_I2C_BUS_SELECT 1
#define CONFIG_I2C_MULTI_BUS 1
i get below error:
/media/data/avinash/c.labs/
git.clones/bootloader/uboot/arch/arm/lib/board.c:189: undefined reference
to `i2c_init'
common/libcommon.o: In function `stdio_init':
/media/data/avinash/c.labs/git.clones/bootloader/uboot/common/stdio.c:215:
undefined reference to `i2c_init'
And there are no i2c related support inside the u-boot for samsung smdkv310.
avinash@avinash-desktop:/media/data/avinash/c.labs/git.clones/bootloader-new/uboot$
grep -inlr 'v310' . > v310.files.txt
avinash@avinash-desktop:/media/data/avinash/c.labs/git.clones/bootloader-new/uboot$
cat v310.files.txt | xargs grep -inr 'i2c_init'
Binary file ./uboot.PS matches
avinash@avinash-desktop:/media/data/avinash/c.labs/git.clones/bootloader-new/uboot$
== Niklas Hernaeus <nhe> ==
=== General activity ===
* DT-work started on the RTC, PL031.
* Due to non-synchronization among us, some work has been duplicated.
* A google document is now used for synchronization and status.
* There seem to be no patches ready for PL180, Saugata Das is
probably assigned (?).
* Arnd helped out with an integration of my previous patch and Lee's
patches. Thanks.
* There is now a working DT environment for Snowball. Work continues with
new drivers.
== Rajendra Nayak <rnayak> ==
=== Highlights ===
* mmc platform callback cleanups posted. Ground work before these
callbacks get moved into a system control module driver.
* More mmc driver general cleanups while working on DT.
* mmc dt series v2 with minor comments from Grant. Found an issue
with the previous series which seemed to work only with MMC_DEBUG
enabled. Issue root caused to OMAP4 controllers needing a special
reset mechanism.
* Worked some more on the system control module driver adding support
for omap2 and omap3. The SCM driver is still limited to adding only
mmc functionality.
=== Plans ===
* Get mmc-dt patches merged.
* Post all mmc driver cleanups accumulated.
* Make System control module driver work with multiple SCM hmwod
instances added (latest series from Paul W)
=== Misc ===
* None
=== Highlights ===
* Reviewed the current android common/android-3.3 branch and pulled out
updates to the already upstream items in staging, and submitted them to
Greg for staging-next, so they'll be ready when the 3.4 window opens
soon. These efforts got some positive press here:
http://www.phoronix.com/scan.php?page=news_item&px=MTA2ODA
* Discussed androidization topic branch for Andrey's linaro linux
kernel. Sent the current AOSP 3.3 branch to Andrey for the 12.3 release.
* Reworked my range-tree code for fadvise volatile to use a rbtree for
better balancing & to simplify the code. Also spent time trying to work
out dual-list locking issues.
* Got pulled into some community timekeeping bug reports, I've tried,
but haven't been able to reproduce yet.
* Verified PaulW's omap resume fix patch
* Got pulled into a sched_clock issue. Reviewed and acked a fix on lkml.
* Updated my rtc, timekeeping and clocksource queues for 3.4.
=== Plans ===
* Continue implementing solution to fadvise volatile dual-list locking
issue
* Likely a few other timekeeping issues & trying to make sure everything
I have pending for 3.4 is queued upstream.
=== Issues ===
* NA
== Arnd Bergmann <arnd> ==
=== Highlights ===
* Merged tons of patches into the arm-soc tree, then handed over to Olof for
the meantime but will probably take over again for the merge window
* Sent out status of the arm-soc tree report for the 3.4 merge window
* Worked with Jason Cooper to get Kirkwood DT conversion started
* Worked with Roland Stigge to get him established as lpc32xx maintainer
and get his code for that platform in, he will work on lpc32xx DT stuff
in the v3.5 cycle.
* Worked with Alan Ott and Mathieu Poirier to start getting my randconfig
patches merged.
* Worked with Niklas Hernaeus and Lee Jones to speed up the ux500 DT conversion.
* Code review: pxa/mmp DT patches, bmp085 driver, at91, dreamplug, ...
=== Plans ===
* Keep watching over various DT conversions
* Dig out my old series for inb/outb elimination and get that
into shape for -next after the merge window
== Linus Walleij linusw ==
=== Highlights ===
* Merged pin control patches from Stephen Warren,
finalizing the API transition.
* Sent a patch series converting U300 over to using
pin control.
* Updated pinctrl blueprints, created work for myself by
opening a ux500 pinctrl transition blueprint.
* Sent some AB8500 updates including AB8505 support
to Sam for MFD.
* Looking over some other internal patches, particularly
patches touching the core kernel outside our own drivers,
posting a cpufreq-ondemand patch today.
* Discussed dmaengine.
* Discussed internal alignment of Linaro activities for
two issues as requested by Andrea.
=== Plans ===
* Test the U9540 patches on real hardware and rework
as outlined by Arnd.
* Accumulate pinctrl patches for kernel v3.4 merge
window.
* Work on the blueprint for ux500 pinctrl.
* Test the PL08x patches on the Ericsson Research
PB11MPCore and submit platform data for using
pl08x DMA on that platform.
* Look into other Ux500 stuff in need of mainlining...
like
- Ux500 clocks
- the HWMON stuff.
=== Issues ===
* None!
Thanks,
Linus Walleij
Hi there,
There's considerable activity in the subject of the scheduler lately and how to
adapt it to the peculiarities of the new class of hardware coming out lately,
like the big.LITTLE class of devices from a number of manufacturers.
The platforms that Linux runs are very diverse, and run differing workloads.
For example most consumer devices will very likely run something like Android,
with common use cases such as audio and/or video playback. Methods to achieve
lower power consumption using a power aware scheduler are under investigation.
Similarly for server applications, or VM hosting, the behavior of the scheduler
shouldn't have adverse performance implications; any power saving on top of that
would be a welcome improvement.
The current issue is that scheduler development is not easily shared between
developers. Each developer has their own 'itch', be it Android use cases, server
workloads, VM, etc. The risk is high of optimizing for one's own use case and
causing severe degradation on most other use cases.
One way to fix this problem would be the development of a method with which one
could perform a given use-case workload in a host, record the activity in a
interchangeable portable trace format file, and then play it back on another
host via a playback application that will generate an approximately similar load
which was observed during recording.
The way that the two hosts respond under the same load generated by the playback
application can be compared, so that the performance of the two scheduler implementations
measured in various metrics (like performance, power consumption etc.) can be
evaluated.
The fidelity of the this approximation is of great importance but it is debatable
if it is possible to have a fully identical load generated, since details of the hosts
might differ in such a way that such a thing is impossible.
I believe that it should be possible at least to simulate a purely CPU load, and the
blocking behavior of tasks, in such a way that it would result in scheduler decisions
that can be compared and shared among developers.
The recording part I believe can be handled by the kernel's tracing infrastructure,
either by using the existing tracepoints, or need be adding more; possibly even
creating a new tracer solely for this purpose.
Since some applications can adapt their behavior according to insufficient system
resources (think media players that can drop frames for example), I think it would
be beneficial to record such events to the same trace file.
The trace file should have a portable format so that it can be freely shared between
developers. An ASCII format like we currently use should be OK, as long as it
doesn't cause too much of an effect during execution of the recording.
The playback application can be implemented via two ways.
One way, which is the LinSched way would be to have the full scheduler implementation
compiled as part of said application, and use application specific methods to evaluate
performance. While this will work, it won't allow comparison of the two hosts in a meaningful
manner.
For both scheduler and platform evaluation, the playback application will generate the load
on the running host by simulating the source host's recorded work load session.
That means emulating process activity like forks, thread spawning, blocking on resources
etc. It is not clear to me yet if that's possible without using some kind of kernel
level helper module, but not requiring such is desirable.
Since one would have the full trace of scheduling activity: past, present and future; there would
be the possibility of generating a perfect schedule (as defined by best performance, or best
power consumption), and use it as a yardstick of evaluation against the actual scheduler.
Comparing the results, you would get an estimate of the best case improvement that could be
achieved if the ideal scheduler existed.
I know this is a bit long, but I hope this can be a basis of thinking on how to go about
developing this.
Regards
-- Pantelis
== Highlights ==
* Debugged cgroups inaccuracy when calculating memory usage,
prepared a hack that fixes the issue, sent an RFC. A proper fix
needs to be implemented though;
* Reviewing/comparing various low memory notifications:
the one from Minchan Kim (http://lwn.net/Articles/475791/), Nokia's
memory meter (http://lkml.org/lkml/2012/1/4/208) and vmevent
(http://lkml.org/lkml/2012/1/17/370). Feature and reception-wise
VM event framework looks like a winner;
* Tried vmevents notifications framework, prepared a few fixes;
* Added two-way notifications to vmevents;
* Added vmevents support for the ulmkd.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
Hi all,
We are know that the OMAP4460's PMU is buggy, which loses PMU interrupt always.
But I do not know what the real bug is, the HW bug or Software bug?
What the bug is?
Could some one give a point?
Kyler Zhang
== Deepak Saxena <dsaxena> ==
=== Highlights ===
* Lots of catching up on emails from pre-ELC
* 1-on-1's
* Discussions on kernel upstreaming and roadmap process
* Review of big.LITTLE Task Migration test plan
=== Plans ===
* Work on kernel wiki page updates
* 1-on-1's, sub-team meetings
* Working on roadmap cards
* Start outline of porting guide that was discussed @ Connect
* Continue looking at kernel upstreaming and roadmap process
* Start outline of member's update on how kernel development process
differs from traditional software development.
* Dive deeper into big.LITTLE switcher project
=== Issues ===
*** I have lost all wiki access permissions (can't edit or create pages, ***
*** can't acces /Internal). RT ticket filed last week but no progress. ***
=== Travel/Time Off ===
* Taking Monday March 12th mostly off, might be online parts of the day
* Possible off May 4-10th.
* Connect Q2
>Hi all,
>We are know that the OMAP4460's PMU is buggy, which loses PMU interrupt always.
>But I do not know what the real bug is, the HW bug or Software bug?
>What the bug is?
Kyler,
This is a hardware problem in the ARM core. It is not specific to the
4460, for instance it also occurs in the 4430 (and presumably non-TI
SoCs). The result of this bug is that PMU counter overflow interrupts
are sometimes lost. The affect can be reduced by paralleling PMU
counters, but this only reduces the problem statistically somewhat.
There is no complete workaround.
The problem is described in ARM errata, but I do not believe that
information is generally available. I think it can be found on a
Freescale site though. I suggest googling for ARM errata 628216.
I believe this will be fixed in a future iteration of the design, but I
do not know when this will be released.
-dl
David Long
Linaro
=== Device Tree ===
* Sent the full series (20 patches) adding DT support for IMX audio.
- Covert audmux driver to a platform driver and move it into ASoC
- Consolidate PowerPC SSI driver and make it work for IMX
- Add imx-sgtl5000 machine driver (DT only)
=== Misc ===
* Reviewed ANATOP MFD and Regulator series (v7) from Paul Liu
--
Regards,
Shawn
== Niklas Hernaeus <nhe> ==
=== General activity ===
* Made the initial DT system to build and boot reliably.
* Sent out a patch for this initial DT system.
/nhe
si_meminfo() calls nr_blockdev_pages() that grabs bdev_lock, but it is
not safe to grab the lock from the hardirq context (the lock is never
taken with an _irqsave variant in block_dev.c). When taken from an
inappropriate context it easily causes the following deadlock:
- - - -
=================================
[ INFO: inconsistent lock state ]
3.2.0+ #1
---------------------------------
inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
swapper/0/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
(bdev_lock){?.+...}, at: [<ffffffff810f1017>] nr_blockdev_pages+0x17/0x70
{HARDIRQ-ON-W} state was registered at:
[<ffffffff81061b20>] mark_irqflags+0x140/0x1b0
[<ffffffff81062f03>] __lock_acquire+0x4c3/0x9c0
[<ffffffff810639c6>] lock_acquire+0x96/0xc0
[<ffffffff8131c58c>] _raw_spin_lock+0x2c/0x40
[<ffffffff810f1017>] nr_blockdev_pages+0x17/0x70
[<ffffffff81089ba8>] si_meminfo+0x38/0x60
[<ffffffff81675493>] eventpoll_init+0x11/0xa1
[<ffffffff8165eb40>] do_one_initcall+0x7a/0x12e
[<ffffffff8165ec8e>] kernel_init+0x9a/0x114
[<ffffffff8131e934>] kernel_thread_helper+0x4/0x10
irq event stamp: 135250
hardirqs last enabled at (135247): [<ffffffff81009897>] default_idle+0x27/0x50
hardirqs last disabled at (135248): [<ffffffff8131e1ab>] apic_timer_interrupt+0x6b/0x80
softirqs last enabled at (135250): [<ffffffff8103814e>] _local_bh_enable+0xe/0x10
softirqs last disabled at (135249): [<ffffffff81038665>] irq_enter+0x65/0x80
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(bdev_lock);
<Interrupt>
lock(bdev_lock);
*** DEADLOCK ***
no locks held by swapper/0/0.
- - - -
The patch fixes the issue by using totalram_pages instead of
si_meminfo().
p.s.
Note that VMEVENT_EATTR_NR_SWAP_PAGES type calls si_swapinfo(), which
has a very similar problem. But there is no easy way to fix it.
Do we have any use case for the VMEVENT_EATTR_NR_SWAP_PAGES event? If
not, I'd vote for removing it and thus keeping things simple.
Otherwise we would have two options:
1. Modify swap accounting for vmevent (either start grabbing
_irqsave variant of swapfile.c's swap_lock, or try to
make the accounting atomic);
2. Start using kthreads for vmevent_sample().
Signed-off-by: Anton Vorontsov <anton.vorontsov(a)linaro.org>
---
The patch is for git://github.com/penberg/linux.git vmevent/core.
mm/vmevent.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/mm/vmevent.c b/mm/vmevent.c
index 2342752..1375f9d 100644
--- a/mm/vmevent.c
+++ b/mm/vmevent.c
@@ -51,18 +51,18 @@ static bool vmevent_match(struct vmevent_watch *watch,
static void vmevent_sample(struct vmevent_watch *watch)
{
struct vmevent_watch_event event;
- struct sysinfo si;
int n = 0;
memset(&event, 0, sizeof(event));
event.nr_free_pages = global_page_state(NR_FREE_PAGES);
- si_meminfo(&si);
- event.nr_avail_pages = si.totalram;
+ event.nr_avail_pages = totalram_pages;
#ifdef CONFIG_SWAP
if (watch->config.event_attrs & VMEVENT_EATTR_NR_SWAP_PAGES) {
+ struct sysinfo si;
+
si_swapinfo(&si);
event.nr_swap_pages = si.totalswap;
}
--
1.7.7.6
Caught this build failure:
CC mm/vmevent.o
mm/vmevent.c:17:6: error: expected identifier or '(' before numeric constant
mm/vmevent.c:18:1: warning: no semicolon at end of struct or union [enabled by default]
mm/vmevent.c: In function 'vmevent_sample':
mm/vmevent.c:84:36: error: expected identifier before numeric constant
make[1]: *** [mm/vmevent.o] Error 1
make: *** [mm/] Error 2
This is because linux/swap.h defines nr_swap_pages to 0L, and so things
break.
Fix this by undefinding it back, as we don't use it anyway.
Signed-off-by: Anton Vorontsov <anton.vorontsov(a)linaro.org>
---
The patch is for git://github.com/penberg/linux.git vmevent/core.
mm/vmevent.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/mm/vmevent.c b/mm/vmevent.c
index 37d2c5f..2342752 100644
--- a/mm/vmevent.c
+++ b/mm/vmevent.c
@@ -6,6 +6,7 @@
#include <linux/poll.h>
#include <linux/slab.h>
#include <linux/swap.h>
+#undef nr_swap_pages /* This is defined to a constant for SWAP=n case */
#define VMEVENT_MAX_FREE_THRESHOD 100
--
1.7.7.6
=== Highlights ===
* My LWN summary of the Android upstreaming interest group meeting from
Linaro Connect was published: https://lwn.net/Articles/484196/
* Chased down an issue w/ serial triggered resume from suspend on
Pandaboard. Working with PaulW & KevinH to narrow down the issue, as it
seems to depend on a combination of uboot, kernel config, and boot
options.
* Did some initial testing w/ Rafael's wakelock patches using Android.
Behavior is not totally what I expect, but some of the Android wakelock
code is shifting (early suspend is being dropped) so I'm not sure if I
have a ideal match between userland and kernel with which to compare.
* Sent out patches to reduce timekeeping lock hold times. Got a bit of
feedback from Ingo, which I integrated in. Also did some increased
testing which found a few bugs in my new code. Also in testing my work,
found and chased down some older timekeeping bugs that had been
introduced upstream over the last few years. This took a good chunk of
time this week.
* Meetings: Ran Android-subteam meeting over email, Phone call with
Zach, Lunch with Deepak.
* Managed to reproduce an issue I saw earlier in the month with the
lowmemory killer in staging.
* Some internal items ate most of a day.
=== Plans ===
* Continue working with PaulW and KevinH to sort out alarmtiemr work
* Need to really get focused on fadvise volatile work
=== Issues ===
* NA
== Linus Walleij linusw ==
=== Highlights ===
* Presented the pin control subsystem at the Embedded
Linux Conference in San Francisco.
* Discussed pin control at Linaro Connect, discussed
pin control at Embedded Linux Conference.
Wrote a bunch of patches refactoring the subsystem to
be closer to what we agreed, Stephen will do the
heavy lifting though.
* Wrote and finalized a presentation for the Embedded
Systems Conference pertaining to the platform perimeter
including GPIO, pin control, device tree ... etc.
* Reviewed and merged a whole bunch of patches from
Stephen Warren @nVidia who gladly stepped in and
offered to write the code we needed to get pin control
to where we want it for v3.4. Dong Aishen is doing a
great job in helping out with code review here.
* Dummy pin controls implemented as default fallback
for devices not provided with any controllers.
* Sent pinctrl fixes to Torvalds for v3.3-rc4.
* Collected a number of ux500 fixes and requested
the ARM SoC maintainers to pull them in. Had to
back off U9540 support but will reiterate.
* Samuel Ortiz merged the DB8500 PRCMU update
to the MFD tree.
* Wrote mail to Greg & LKML about system controllers
after discussion at ARM SoC maintainers summit.
Seems the need may be there and we could create
drivers/scm the day we have something that would
live there.
=== Plans ===
* Accumulate pinctrl patches for kernel v3.4 merge
window.
* Drive generalization of Nomadik GPIO
by using the pinctrl framework.
drivers/gpio/gpio-nomadik.c
* Test the PL08x patches on the Ericsson Research
PB11MPCore and submit platform data for using
pl08x DMA on that platform.
* Look into other Ux500 stuff in need of mainlining...
like
- Ux500 clocks
- the HWMON stuff.
=== Issues ===
* Ux500 mainlining or improvements (such as device
tree) having second priority.
* Sorry for long report covering much time, it's covering
some of my vacation that is why...
Thanks,
Linus Walleij
Hi guys,
Once I duplicated linaro-ubuntu-desktop image into SD card following the
instruction on linaro website and it works fine. Now I need to patch the
kernel so that I compiled the patched kernel and copy the kernel image into
/boot of SD card but my pandaboard doesn't boot up. Below is more detail
steps I did so please let me know what I did wrong. Also if you have an
instruction, then it also might be really helpful.
1. I'm using PandaBoard ES. To start the board, I just dd
linaro-ubuntu-desktop image to SD card following these steps (
http://releases.linaro.org/images/):
# These values will change based on your system
$ SDCARD=/dev/ #sdcard could be something sdb or mmcblk0
$ IMGFILE=overo-nano.img
$ gunzip ${IMGFILE}.gz
$ dd bs=64k if=${IMGFILE} of=${SDCARD}
Then the linaro ubuntu works on the PandaBoard ES well. In detail, the
version of this ubuntu 12.02 and kernel version is 3.1.1-8-linaro-lt-omap.
2. Next, I cloned your git repository(git://
git.kernel.org/pub/scm/linux/kernel/git/ohad/remoteproc.git) to get kernel
including remoteproc patch. Since there's no .config file I just copy the
config file of 3.2-rc4 on here (
http://elinux.org/Panda_How_to_kernel_3_2_rcx) wihch is the version
matching the kernel version on your git repository. And then I compile the
kernel and modules to get an uImage and install modules with commands below
(also explains http://elinux.org/Panda_How_to_kernel_3_2_rcx), and copy
uImage to /boot on SD card and modules /rootfs/lib/ on SD card. I used
arm-linux-gnueabi-gcc rather than arm-none-linux-gnueabi-gcc.
Then compile like so:
make ARCH=arm
CROSS_COMPILE=Path_to_your/arm-2010q1/bin/arm-none-linux-gnueabi- uImage
Then compile the modules like so:
make ARCH=arm
CROSS_COMPILE=/home/kenm/Panda/arm-2010q1/bin/arm-none-linux-gnueabi-
modules
"Install" the modules to somewhere convenient:
make ARCH=arm
CROSS_COMPILE=/home/kenm/Panda/arm-2010q1/bin/arm-none-linux-gnueabi-
INSTALL_MOD_PATH=../testlib_omap modules_install
3. Then I put SD card to the Panda Board but it's suspending with the
booting logs below.
U-Boot SPL 2011.12-rc1 (Mar 01 2012 - 20:03:59)
Texas Instruments OMAP4460 ES1.1
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img
U-Boot 2011.12-rc1 (Mar 01 2012 - 20:03:59)
CPU : OMAP4460 ES1.1
Board: OMAP4 Panda
I2C: ready
DRAM: 1 GiB
WARNING: Caches not enabled
MMC: OMAP SD/MMC: 0
Using default environment
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
reading uEnv.txt
** Unable to read "uEnv.txt" from mmc 0:1 **
reading boot.scr
514 bytes read
Loaded script from boot.scr
Running bootscript from mmc0 ...
## Executing script at 82000000
reading uImage
3249584 bytes read
reading uInitrd
1877535 bytes read
reading board.dtb
340 bytes read
## Booting kernel from Legacy Image at 80200000 ...
Image Name: Linux-3.2.0-rc4-00248-gb835c0f-d
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3249520 Bytes = 3.1 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 81600000 ...
Image Name: initramfs
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 1877471 Bytes = 1.8 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 815f0000
Booting using the fdt blob at 0x815f0000
Loading Kernel Image ... OK
OK
reserving fdt memory region: addr=9d000000 size=3000000
Using Device Tree in place at 815f0000, end 815f3153
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Do you have any guess what I have missed or didn't do something? Any of
your advise would be more than welcome. Thanks for your patches, and I
really appreciate your consideration and help.
Thanks,
Jaeyeon
=== Pinctrl ===
* Mainly focused on help reviewing pinctrl core rework patches(near 30
patches recently submitted by Stephen Warren and Linus Walleij)
for API rework, merging mux and config and adding different state
support as well as pinctrl core dt binding support(in plan).
=== Plan ===
* Continue to help review pinctrl core patches since many of them are still
not hit mainline
* Adding pin config and DT support for MX6Q pinctrl driver after pinctrl
core rework patches get upstreamed
* Will spend some free time to add DT support for MX28 platform
Hi all,
I've added some detailed info on the wiki about how to go about
building bootable images for the big.LITTLE components, here:
https://wiki.linaro.org/Internal/Projects/Big.Little.Switcher/ARMFastModels…
For the benefit of anyone who can't see that page, I've also pasted it
here -- if anyone knows a better place to post this stuff, please let
me know!
Note that although the instructions give details of how to build a
filesystem image, there is essentially nothing b.L or model-specific
there -- it just serves as background for explaining how to work
around some issues which you may encounter.
These images are not supposed to present a fully working big.LITTLE
system -- they are there to help people understand how booting works,
where the sources are and how to work with the model.
Note also that the bootwrapper will change soon (when I get there) to
support loading of the kernel, initramfs from the host filesystem
using semihosting, just like the kvm bootwrapper, but this isn't
implemented for now.
Cheers
---Dave
== Filesystem ==
We need to create an SD card image with a filesystem on it, with the
rootfs partition matching the bootargs set previously. The following
example generates a suitable image using developer. The hardware pack
is largely irrelevant because we're not getting the kernel, modules,
bootloader or command-line from there -- but it keeps l-m-c happy.
{{{
$ wget http://releases.linaro.org/12.02/ubuntu/oneiric-images/developer/linaro-o-d…
$ wget http://releases.linaro.org/12.02/ubuntu/oneiric-images/developer/hwpack_lin…
}}}
Note that the ARM fast model's MMC interface emulation is currently
limited to 2G. Make the image a bit smaller than that to be on the
safe side:
{{{
$ sudo linaro-media-create --dev vexpress --image_file mmc.bin
--image_size 2000M --hwpack
hwpack_linaro-lt-vexpress-a9_20120221-1_armel_suupported.tar.gz
--binary linaro-o-developer-tar-20120221-0.tar.gz
}}}
After generating the filesystem, you probably want to customize it:
* Disable address layout randomization (mitigates a memory
consumption issue with the model, but not so important on host
machines with >4GB of RAM):
{{{
echo sys.kernel.randomize_va_space = 0 >>etc/sysctl.conf
}}}
* Disable DHCP for the network (otherwise boot will stall):
{{{
sed -i '/auto.*eth0/d; s/^\(iface.*eth0.*\)dhcp/\1manual/'
etc/network/interfaces
}}}
* Edit fstab to put the real device name into /etc/fstab in place of
UUID=<uuid>. This may not be necessary (mountall was getting
confused, but that may have been caused by not having an initramfs).
Finally, extract the initramfs image (whatever /initrd.img in the
filesystem image points to).
== Kernel, switcher and bootwrapper ==
Clone the big.LITTLE switcher:
{{{
$ git clone --branch gnu-build git://git.linaro.org/people/dmart/arm-virt-bl.git
}}}
Clone the kernel to run on the model. (Eventually we shouldn't need a
special tree for this. There are a few model-specific tweaks in this
tree, but nothing big.LITTLE-specific yet.)
{{{
$ git clone --branch arm/vexpressdt-rtsm
git://git.linaro.org/people/dmart/linux-2.6-arm.git
}}}
Now build the kernel:
{{{
$ cd linux-2.6-arm/
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_rtsm_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage dtbs
}}}
The bootwrapper doesn't support device tree yet, so for now append a
suitable device tree blob to the zImage. This should match the model
you intend to run on:
{{{
$ cat arch/arm/boot/zImage arch/arm/boot/vexprress-v2p-ca15x4-rtsm.dtb >../zBlob
}}}
Now, build the bootwrapper using the kernel you just built:
{{{
$ cd ../arm-virt-bl/bootwrapper
}}}
Configure some things:
In Makefile, add the following argument to BOOTARGS:
{{{
root=/dev/mmcblk0p2
}}}
Due to current bugginess introduced by the ARM->GNU toolchain
migration, the switcher is not currently stable. For now, we turn off
autonomous asynchronous switching so that we can see the system
booting:
In big-little/Makefile, add change the line
{{{
ASYNC ?= TRUE
}}}
to
{{{
ASYNC ?= FALSE
}}}
Plug in the kernel and initramfs images from the previous steps:
{{{
$ : >payload/fsimg
$ cp ../../zBlob payload/kernel
$ cp initrd.img payload/fsimg
}}}
... and build:
{{{
$ make
[...]
LD img.axf
}}}
img.axf is the boot payload which is needed to start the model. It
contains the big.LITTLE switcher code and the kernel, along with a
minimal bootloader.
== Running ==
OK, so now we have:
* A boot image containing the switcher and kernel: img.axf
* A filesystem MMC card image: mmc.bin
* A model binary
Sample payload images can be found in
http://people.linaro.org/~dmart/bl-images/model-images-20120228.tar.bz2
Run like this:
{{{
$ ./RTSM_VE_Cortex-A15x4-A7x4 -C motherboard.mmc.p_mmc_file=mmc.bin -a
coretile.cluster0.*=img.axf
}}}
This should be enough to boot to a prompt on the simulated UART.
Beware though -- it can take up to 10 minutes or so to get there,
depending on your machine.