Hi -
Andrey has made a nice new branch "linux-linaro-tracking" with some
"nexty" goodies in it
http://git.linaro.org/gitweb?p=people/ynk/linux-linaro-tracking.git;a=short…
I rebased tilt-tracking on top of it at v3.2 basis at the moment.
Quite early in boot, it blows a new BUG() in the code around
iotable_init(), I added some debug and see it's blowing up when trying
to define io memory in omap_barriers_init(). A bunch of earlier
machine-defined iotable_inits go OK.
[ 0.000000] iotable_init: adding addr=DA000000 size=02000000
phys_addr=9A000000
[ 0.000000] iotable_init: adding addr=F8000000 size=00100000
phys_addr=44000000
[ 0.000000] iotable_init: adding addr=FC000000 size=00400000
phys_addr=4A000000
[ 0.000000] iotable_init: adding addr=F9000000 size=00100000
phys_addr=50000000
[ 0.000000] iotable_init: adding addr=FD100000 size=00100000
phys_addr=4C000000
[ 0.000000] iotable_init: adding addr=FD200000 size=00100000
phys_addr=4D000000
[ 0.000000] iotable_init: adding addr=FD300000 size=00100000
phys_addr=4E000000
[ 0.000000] iotable_init: adding addr=FA000000 size=00400000
phys_addr=48000000
[ 0.000000] iotable_init: adding addr=FE800000 size=00800000
phys_addr=54000000
...
[ 0.538024] omap_barriers_init: calling iotable_init
[ 0.543243] iotable_init: adding addr=FE600000 size=00100000
phys_addr=AF600000
[ 0.550872] ------------[ cut here ]------------
[ 0.555725] Kernel BUG at c087c74c [verbose debug info unavailable]
[ 0.562255] Internal error: Oops - undefined instruction: 0 [#1]
PREEMPT SMP
[ 0.569610] Modules linked in:
[ 0.572845] CPU: 1 Tainted: G W
(3.2.0-panda_tracking-topic-syslink-k3u+ #6)
[ 0.581451] PC is at vm_area_add_early+0x20/0x84
[ 0.586303] LR is at iotable_init+0xa8/0xbc
[ 0.590698] pc : [<c087c74c>] lr : [<c086cd48>] psr: 20000113
[ 0.590698] sp : ef78ff54 ip : ef78fe10 fp : 00000000
[ 0.602691] r10: c086cca0 r9 : 00000000 r8 : 40000001
[ 0.608154] r7 : ef7ffee0 r6 : ef78ff90 r5 : ef7ffec0 r4 : 00000001
[ 0.614959] r3 : 00000001 r2 : 00000000 r1 : 00000001 r0 : ef7ffec0
[ 0.621765] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM
Segment kernel
[ 0.629394] Control: 10c5387d Table: 8000404a DAC: 00000015
[ 0.635406] Process swapper/0 (pid: 1, stack limit = 0xef78e2f8)
[ 0.641662] Stack: (0xef78ff54 to 0xef790000)
[ 0.646240] ff40:
00000001 00000000 af600000
[ 0.654754] ff60: c09299e0 ef78e000 00000000 00000000 c0870f8c
c0871070 c08d7f9c c08a7bf8
[ 0.663269] ff80: fe600000 000af600 00100000 0000000e c08a7bfc
c0008870 0000009f c009f590
[ 0.671783] ffa0: 0000009f c0870f8c c0014640 00393531 00000000
c0150000 00000000 c08e5604
[ 0.680297] ffc0: 0000019a c08a7bfc c08a842c c0014640 00000013
00000000 00000000 00000000
[ 0.688812] ffe0: 00000000 c08668bc 00000000 00000000 c0866830
c0014640 55555555 45515555
[ 0.697326] [<c087c74c>] (vm_area_add_early+0x20/0x84) from
[<00000000>] ( (null))
[ 0.705322] Code: 059f3068 01a0c003 05933000 0a000010 (e7f001f2)
[ 0.711700] ---[ end trace 1b75b31a2719ed1d ]---
[ 0.716552] Kernel panic - not syncing: Attempted to kill init!
[ 0.722747] CPU0: stopping
[ 0.725646] [<c001a930>] (unwind_backtrace+0x0/0xf8) from
[<c0018cf8>] (handle_IPI+0x114/0x140)
[ 0.734710] [<c0018cf8>] (handle_IPI+0x114/0x140) from [<c00086c0>]
(gic_handle_irq+0x88/0xac)
[ 0.743682] [<c00086c0>] (gic_handle_irq+0x88/0xac) from [<c05fa0c0>]
(__irq_svc+0x40/0x70)
[ 0.752380] Exception stack(0xc08adf70 to 0xc08adfb8)
[ 0.757659] df60: ffffffed
00000000 c08adfb8 00000000
[ 0.766174] df80: c08ac000 c0929aa8 c0603f50 c08c9bd8 c08c9d98
412fc09a 00000000 00000000
[ 0.774688] dfa0: 00000000 c08adfb8 c00146bc c00146c0 60000013 ffffffff
[ 0.781616] [<c05fa0c0>] (__irq_svc+0x40/0x70) from [<c00146c0>]
(default_idle+0x24/0x28)
[ 0.790130] [<c00146c0>] (default_idle+0x24/0x28) from [<c001493c>]
(cpu_idle+0xfc/0x11c)
[ 0.798645] [<c001493c>] (cpu_idle+0xfc/0x11c) from [<c08667e0>]
(start_kernel+0x260/0x2b0)
[ 0.807342] [<c08667e0>] (start_kernel+0x260/0x2b0) from [<80008044>]
(0x80008044)
You can see what's going on in omap_barriers_init() here:
http://git.linaro.org/gitweb?p=landing-teams/working/ti/kernel.git;a=blob;f…
Does anyone have an idea why pulling in the new stuff in Andrey's tree
would provoke this problem? There's a lot of stuff around device tree
but I now rebuild the dtb every kernel build, so it shouldn't be that
what's in there is out of date.
There's also stuff from rmk-devel-stable.
-Andy
--
Andy Green | TI Landing Team Leader
Linaro.org │ Open source software for ARM SoCs | Follow Linaro
http://facebook.com/pages/Linaro/155974581091106 -
http://twitter.com/#!/linaroorg - http://linaro.org/linaro-blog
== Dave Martin <dmart> ==
=== Activity Summary ===
* Porting the switcher to the GNU tools. Mostly complete with some help
from nico. Still needs tidy-up, and getting the final link working
still needs more work (however, we may be able to dodge around that
initially. Getting it perfect would be a waste of effort, since this
is of no relevance to the linux kernel).
=== Plans ===
* Finish merging the switcher patches together
* Get hold of the fast model and try to run the switcher. Then when
it fails, debug.
* Possibly post driver changes to replace NO_IRQ with a test compatible
with the "0 means no irq" convention.
* Sync with Deepak, Pawel etc. about what needs to be done for the
remaining DT bits (bindings, drivers)
=== Work Items ===
no update
=== Absences ===
none planned yet
=== Device Tree ===
* Start looking at the DT support for imx audio driver. The first
step would be consolidating SSI driver between PowerPC family and
i.MX family. Since the hardware IP is basically the same one for
PowerPC and i.MX, it does not make sense to Tabi Timur (PowerPC
SSI developer from Freescale) that we keep forking the driver for
these two architecture, so he NAK-ed the patch adding DT probe
support into i.MX SSI driver. Instead, he requested to make the
PowerPC one work for i.MX, since the DT support is already there.
But that is a much bigger effort than simply adding DT probe based
on imx SSI driver, and will need to take some time.
* After an extensive discussion with Stephen Warren and Aisheng on
pinctrl DT binding, we are approaching some level of agreement.
Stephen came up a draft proposal based on the discussion, which
should work at least for imx and tegra.
=== imx6 maintenance ===
* Tested BSYM usage fixing series from Rob Herring on imx6q
* Tested smp_twd runtime registration series from Marc Zyngier on imx6q
* Reviewed the second version of audio board level changes and imx-dma
driver fix-up series from Richard Zhao
* Sent a patch to add missing twd_clk for imx6q clock, and I queued
this one for 3.3-rc series.
=== mxs maintenance ===
* Reviewed a apx4devkit saif board level fixing from Lauri Hintsala
* Helped on a couple mx28 fec clock queries
=== Misc ===
* Sent v2 of patch common/image.c to align usage of fdt_high with
initrd_high to update fdt_high documentation and fix an issue with
0xffffffff case.
=== Vacation ===
* 2 weeks (Jan 23 and Jan 30) China Spring Festival Holiday (Will
try to check email from time to time though)
--
Regards,
Shawn
== Saugata Das sdas ==
=== Activity Summary ===
* Data tag patch pushed to mmc-next
* Debug session together with Venkat for the BKOPS issue
* Context ID patch prepared. Internal review ongoing
=== Plans ===
* Testing of context ID patch on Samsung eMMC
=== Issues ===
* None
=== Highlights ===
* Got buy in from Brian & Arve on my alternative monotonic evdev input
timestamp patch. Resent to input list and maintainer. Still haven't
heard anything back from maintainer about merging it or not. I suspect
this will end up having to wait for 3.4
* Worked to get the Android sub-team wiki page started up.
https://wiki.linaro.org/WorkingGroups/Kernel/AndroidUpstreaming
* Synced with Rafael about his wakelock/pm_stay_awake migration plan.
Likely a good candidate for alarmtimer interface testing.
* Ran the weekly Android sub-team meeting (over email) with Anton.
* Andrew Morton pushed my merge_config.sh script for merging.
Unfortunately it was sent to the kbuild maintainer and not to Linus, so
its unlikely to make it in for 3.3. The patch still is pending in -mm.
* Synced with Andrey, Nico and Deepak on Linaro kernel transition
* Reposted merge_config.sh script and sent it to Andrey for inclusion
into the linaro kernel. Looking to try to handle inconsistent config
issue which has been causing trouble recently.
* Tried to push 2 RTC fixes as well as some timekeeping cleanup patches
to Thomas for inclusion in 3.3. So far no response, so I've pinged tglx
again.
* Looked into lockdep warning I was getting with fadvise volatile
implementation. After spending a bit of time, I couldn't sort it out and
tried to see how ashmem avoids it. Ends up ashmem trips the same lockdep
warning and calling vmtruncate_range from a shrinker is the problem. Not
yet sure how to avoid this yet, but decided to table it for now.
* Started work on a range-tree algorithm for better managing the
volatile page ranges used with the fadvise volatile mapping alternative
to ashmem. Got some reasonable progress on an initial userspace
algorithm. I feel like I'm back in college (zig-zig/zig-zag/what?).
=== Plans ===
* Continue working on range-tree algorithm, trying to add self-balancing
to the tree. If that gets finished, try to integrate it into the kernel
& my fadvise code.
* Ping kbuild maintainer about merge_config.sh patch status
* Send out alarmtimer rework to greg & android devs for review
=== Issues ====
* Tried to provide some workarounds for sched_clock issues that are
cropping up on arm. Likely we need to add a middle-to-largeish work-item
for someone in Linaro to fix the generic sched_clock implementation, as
I suspect it isn't going to just go away. Unfortunately I don't have
enough time to dig in on it right now.
== Omar Ramirez <omarrmz> ==
=== Highlights ===
* Patches for iommu hwmod for OMAP seem to have settled down on the
comments, no changes requested yet, collecting Acks. Side investigation of
omap isp clocks spawned from this series.
* Discussions with Ohad and feedback on rpmsg and remoteproc against other
standards like MCAPI. Still syncing on the work to be done, currently
working on side items surrounding remoteproc.
=== Plans ===
* Look at omap-mailbox and omap-iommu for device tree conversion.
* Plan for a clean version of rpmsg code outside the kernel, decoupled of
TI sysbios code, currently marked as a nice-to-have priority.
=== Travel/Time Off ===.
* Outside of U.S. and waiting for new Visa (since 12/22/11).
* Time off (for Visa application) 12/19/11 - 12/23/11
OK, still can't manage to make it weekly stuff, but for now the main reason
for this is a somewhat disturbing long holidays (which I used as my
vacation); so, this status report actually covers just this week (except
Monday, which was a holiday as well).
== Community contributions ==
* Some work for power supply tree. Managed to review charger manager and
TI LP8727 drivers. This is now all in mainline via this pull request;
http://lkml.org/lkml/2012/1/10/514
* Sent a small missing patch for Android lowmemorykiller (well,
I thought that I sent it two days earlier, but for some reason it did
not get past my local MTA. But Greg says that it still has chances
to slip into 3.3);
http://lkml.org/lkml/2012/1/13/251
== Completed Work Items ==
* Performed some lowmemorykiller behaviour tests regarding how it
handles full file cache conditions (as suggested by KOSAKI Motohiro),
and there are indeed some problems: it starts killing processes even
if there is plenty of file cache (read free memory). Well, it also
might be "intentional", as rereading data from slow medium might be
a bad idea, and since we don't have much control what exactly file
cache contains, it might be better to kill unneeded tasks (and
free guaranteed amount of memory), then just reclaim random memory
from the cache;
* Apart from testing latest mainstream kernel and ensuring that the
new staging code does work, nothing much has been done.
== Plans ==
* Continue work on current lowmemorykiller, i.e. further work on file
cache issue, think about a better strategy. Investigate whether we
could get rid of tasklist_lock;
* Update blueprints;
* Finally pick over other patches that need upstreaming.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
OK, still can't manage to make it weekly stuff, but for now the main reason
for this is a somewhat disturbing long holidays (which I used as my
vacation); so, this status report actually covers just this week (except
Monday, which was a holiday as well).
== Community contributions ==
* Some work for power supply tree. Managed to review charger manager and
TI LP8727 drivers. This is now all in mainline via this pull request;
http://lkml.org/lkml/2012/1/10/514
* Sent a small missing patch for Android lowmemorykiller (well,
I thought that I sent it two days earlier, but for some reason it did
not get past my local MTA. But Greg says that it still has chances
to slip into 3.3);
http://lkml.org/lkml/2012/1/13/251
== Completed Work Items ==
* Performed some lowmemorykiller behaviour tests regarding how it
handles full file cache conditions (as suggested by KOSAKI Motohiro),
and there are indeed some problems: it starts killing processes even
if there is plenty of file cache (read free memory). Well, it also
might be "intentional", as rereading data from slow medium might be
a bad idea, and since we don't have much control what exactly file
cache contains, it might be better to kill unneeded tasks (and
free guaranteed amount of memory), then just reclaim random memory
from the cache;
* Apart from testing latest mainstream kernel and ensuring that the
new staging code does work, nothing much has been done.
== Plans ==
* Continue work on current lowmemorykiller, i.e. further work on file
cache issue, think about a better strategy. Investigate whether we
could get rid of tasklist_lock;
* Update blueprints;
* Finally pick over other patches that need upstreaming.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
From: Arve Hjønnevåg <arve(a)android.com>
If a process forked and the child process was killed by the
lowmemorykiller, the lowmemory killer would be disabled until
the parent process reaped the child or it died itself.
Signed-off-by: Arve Hjønnevåg <arve(a)android.com>
Signed-off-by: Anton Vorontsov <anton.vorontsov(a)linaro.org>
---
Noticed that the patch is missing. Any reason for not wanting it
in staging?
drivers/staging/android/lowmemorykiller.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/staging/android/lowmemorykiller.c b/drivers/staging/android/lowmemorykiller.c
index 2d8d2b7..efc7dc1 100644
--- a/drivers/staging/android/lowmemorykiller.c
+++ b/drivers/staging/android/lowmemorykiller.c
@@ -54,6 +54,7 @@ static size_t lowmem_minfree[6] = {
static int lowmem_minfree_size = 4;
static struct task_struct *lowmem_deathpending;
+static unsigned long lowmem_deathpending_timeout;
#define lowmem_print(level, x...) \
do { \
@@ -103,7 +104,8 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc)
* Note: Currently you need CONFIG_PROFILING
* for this to work correctly.
*/
- if (lowmem_deathpending)
+ if (lowmem_deathpending &&
+ time_before_eq(jiffies, lowmem_deathpending_timeout))
return 0;
if (lowmem_adj_size < array_size)
@@ -178,6 +180,7 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc)
*/
#ifdef CONFIG_PROFILING
lowmem_deathpending = selected;
+ lowmem_deathpending_timeout = jiffies + HZ;
task_handoff_register(&task_nb);
#endif
force_sig(SIGKILL, selected);
--
1.7.7.3
== Dave Martin <dmart> ==
=== Activity Summary ===
* Porting the switcher to the GNU tools. Mostly complete with some help
from nico. Still needs tidy-up, and getting the final link working
still needs more work (however, we may be able to dodge around that
initially. Getting it perfect would be a waste of effort, since this
is of no relevance to the linux kernel).
=== Plans ===
* Finish merging the switcher patches together
* Get hold of the fast model and try to run the switcher. Then when
it fails, debug.
* Possibly post driver changes to replace NO_IRQ with a test compatible
with the "0 means no irq" convention.
* Sync with Deepak, Pawel etc. about what needs to be done for the
remaining DT bits (bindings, drivers)
=== Work Items ===
no update
=== Absences ===
none planned yet