== Omar Ramirez <omarrmz> ==
=== Highlights ===
* Attended Linaro Connect from Feb 6 - 10
* Rebased iommu hwmod work onto Ohad's rpmsg-branch, created github
tree for him to check on the changes.
* Setting up OMAP3 ISP testing environment, to test iommu changes
without a sensor, following instructions received from Laurent
Pinchart.
* Looking at device tree for mailbox.
* Tidspbridge work:
- Tracking inclusion of memory leak fixes for tidspbridge.
- Patch to solve a L3 warning due to a missing wdt clock on the dsp side.
== Thomas Abraham <thomas-ab> ==
=== Highlights ===
* Posted revised device tree support patches for wakeup interrupts (v3),
max8997 mfd/regulator (v4) and interrupt combiner (v4). Reworked
the patches for the v5 of irq_domain generalization patches.
=== Plans ===
* Revised device tree support patches for display controller.
* Generic bindings for IOMMU controller.
Got ill at the start of this week, plus the holidays pretty much
distracted my usual workflow.
== Highlights ==
* Found a serious bug in the cgroups memory controller, prepared and
send the fix upstream;
* Got a drop-in userspace replacement for the kernel LMK driver, it is
using cgroups memory notifications;
* Started working on shm+liburcu-cds support for the userspace-LMK
daemon, this will let Activity Manager and ulmk daemon efficiently
exchange PIDs and their priorities, so that ulmk wouldn't need to
traverse the whole /proc directory.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
=== Device Tree ===
* Refine imx sound Kconfig and imx ASoC driver to get imx-pcm-dma
work independently with imx-ssi, so that it's possible to get it
work with fsl_ssi driver.
* Factor out the common functions among Freescale PowerPC ASoC
machine drivers into a utility module, so that these common bits
do not need to get duplicated again when IMX machine driver is
added to work with fsl_ssi driver.
=== IMX Maintenance ===
* Posted a few updates on imx_v6_v7_defconfig and imx5/6 dts
* Tested a couple of ASoC dmaengine backed pcm driver consolidation
patches on IMX and MXS
* Collected a number of imx6 patches from Freescale Landing Team
--
Regards,
Shawn
== Dave Martin <dmart> ==
=== Activity Summary ===
* A bit of cleanup progress on the hyp-entry patches, but more is needed.
* Addressed review comments on the hyp-entry patches locally (not reposted yet)
* Progressed deployment of the ARM task migration (switcher)
implementation: merged in ARM's recent fixes; still discussing on how
best to publish this. Debugging still appears to be needed.
* Specification/planning discussions for the big.LITTLE work after
Linaro Connect.
=== Plans ===
* Continue debugging ARM switcher
* Clean up and post hyp-entry RFC
* Attempt to implement cpufreq backend to drive the ARM switcher from userspace
=== Work Items ===
https://blueprints.launchpad.net/linux-linaro/+spec/big-little-reference-sw…:
[dave-martin-arm] integrate reference switcher bug fixes from ARM: INPROGRESS
[dave-martin-arm] debug reference switcher: INPROGRESS
(i.e., work on-going)
=== Absences ===
none planned yet
== Niklas Hernaeus <nhe> ==
=== General activity ===
* Made patches apply and build on both next-kernel and
igloo-kernel
* Made the discovery that my problems with running with DT on
snowball seems
to be due to a lockup in the boot. The speculation so far is that this is
due to a different access of hw when using DT, where some boot sw
accesses
some hw that have not any clock or power yet. At the moment it seems
to be the gpio that is the problem.
== Rajendra Nayak <rnayak> ==
=== Highlights ===
* Posted cleanups for twl4030-gpio and mmc dependencies
during init since mmc card detect uses twl4030 gpio.
* Posted v2 of the pdev->id cleanup for omap hsmmc driver.
Asked Chris to pull for 3.4.
* Posted v3 of twl regulator DT adaptation patches. Still
got dependency with Benoit's i2c-twl series.
* Posted omap hsmmc driver DT adaptation patches. Have
dependency on the pdev->id cleanup and twl regulator DT
series.
=== Plans ===
* Repost twl regulator DT patches on top of Tero's changes as
requested by Mark.
* twl4030-gpio DT conversion.
* System control module driver for OMAP.
=== Misc ===
* None
=== Highlights ===
* Finish writeup of android meeting summary got it reviewed and acked by
the participants and sent to lwn. Hoping it will be published this weds.
* Handled Android-subteam meeting
* Finally got to testing Rafael's wakelock patches on an x86 system.
Found an issue and reported it. Worked on getting suspend/resume working
on my panda board so I can test there, but so far no luck.
* Reviewed the released Android 3.3 tree from Google. Its much smaller,
which is great. Also they are using my alarm-timer cleanups, which might
help get those ready for mainline inclusion. We should note that the
release is really just a development snapshot, so its likey to change a
bit.
* Sent some email to Colin Cross about cgroup patches that I thought he
was going to drop, but he explained why they were still necessary.
* Met with Mark Gross of Intel (also a Portlander) who's name came up
during the Android meeting with regards to runtime pm vs wakelocks.
Talked to him a bit about his thoughts on wakelocks and talked about
what went on at the Android meeting.
* Started looking at what is required to get ADB into staging
=== Plans ===
* Continue working on testing Rafael's wakelocks & try to integrate them
with the alarmtimer work
* Get some time to work on another iteration of fadvise volatile
=== Issues ===
* NA
The Linaro Kernel Working Group (KWG) and the Linaro Platform
Group are excited to announce the availability our February 2012
development snapshot:
linux-linaro-3.3-rc3-2012.02-1
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.
We are excited about our first -rc based kernel as we move to a new
process that will provide early access to more bleeding edge features
on member-supported LEBs.
The source tarball is available at:
http://launchpad.net/linux-linaro/3.3/3.3-rc3-2012.02/+download/linux-linar…
The kernel sources can also be accessed using git at:
git://git.linaro.org/people/ynk/linux-linaro-tracking.git
tag: linux-linaro-3.3-rc3-2012.02-1
This kernel includes the following changes from the 2011.11 kernel:
- Update to 3.3-rc3
- Various patches from Linaro
* samsung_cpuidle_l2_retention patch set from the power management WG
* thermal_cpu_cooling patch set from the power management WG
* irq_domain patch set from Grant L. (cherry-picked from linux-next)
* Fix for https://bugs.launchpad.net/bugs/918412
* Basic device tree board support for supported ARM boards
(comes from linux-linaro-3.1)
* sched: Ensure cpu_power periodic update (Vincent G.)
* ARM: kprobes: work around build errors (Arnd B.)
* usb: ehci: make HC see up-to-date qh/qtd descriptors ASAP (Ming L.)
* Perf: Fallback to /bin/more if less is not found for perf pager (Avik S.)
A full change log against the 3.3-rc3 release is available at:
http://launchpad.net/linux-linaro/3.3/3.3-rc3-2012.02/+download/CHANGELOG-l…
High Priority Known Issues:
- None at this time
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-dev
Questions? https://ask.linaro.org/
Hi all,
For some drivers we need to know when scheduler is idling. The most
straightforward way is to gracefully hook into the idle loop.
On x86 there are "CPU idle" notifiers in the inner idle loop, but
scheduler idle notifiers are different. These notifiers do not run on
every invocation/exit from cpuidle, instead they used to notify about
scheduler state changes, not HW states.
In other words, CPU idle notifiers work inside while(!need_resched())
loop (nested into idle loop), while scheduler idle notifier work
outside of the loop.
The first two patches consolidate scheduler idle entry/exit
points, and converts architectures to this new API.
The third patch is a new cpufreq governor, the commit message
briefly describes it.
The fourth patch is another user of the notifiers, a trivial one.
Thanks,
p.s. For the reference, the old discussion about CPU/PM idle
notifiers: http://lkml.org/lkml/2011/6/27/391
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
== Niklas Hernaeus <nhe> ==
=== General activity ===
* Changing snowball version to new. This implies using different tools.
* Due to new tools, upgrading workstation to new ubuntu.
* Sorted out git.linaro.org problems. Thanks Lee Jones.
/nhe
== Highlights ==
* Further work on familiarizing with the scheduler code.
* Built and tried cpufreq-bench, but the suite reported that it'll take more
then 6 hours to complete. I hope it's some bug in the cpufreq-bench,
but didn't investigate it yet.
* Got some notes/concerns regarding idea of moving LMK to the userland.
The problem is that we should make sure that LMK would not need any new
allocations, which seems nearly impossible in JVM.
The idea to solve the issue would be to move killer process into the
C code (as a daemon), and then revert Activity Manager to handle
oom_adj. Upon low-memory event, the killer would just read pid's
oom_adj. This will be good for a proof-of-concept thing (and as a drop-in
replacement for the LMK kernel driver), but for production, we might want
Activity Manager to keep process list in a shared memory (+ maybe
liburcu for efficiency).
This whole scheme seems even better then having everything in Java
(as we won't need cgroups/low-memory-notifiers bindings).
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
== Highlights ==
* Submitted interactive cpufreq governor, got a lot of feedback. Mostly
about cpufreq in general, and that we should make scheduler more PM-aware
instead on making cpufreq itself scheduler-state aware.
Fiddling with the scheduler is surely a lot of fun, so I started looking
into entity load-tracking re-work patches by Paul Turner @ Google.
As Peter Zijlstra says, these patches should be a good start to add
avg runtime per cpu.
* Further work on a patchset that fixes various task->mm handling mistakes.
More abusers found and fixed. (This is started as a LMK cleanup, but
as it appears a lot of other code in the kernel has the same bugs.)
* Several LMK fixes were accepted into -staging.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
=== Highlights ===
* Rebased the 3.2 Androidization patches from Andy Green onto 3.3-rc3
and provided them to Andrey for the 12.2 release.
* Worked to get Rafael's wakelock patches into a git tree for testing.
Unfortunately the patches have been under quite a bit of churn on the
list, so I asked Rafael for a git tree to pull from, but he's not yet
responded.
* Pinged tglx on my patch queues for 3.4, and he pulled them in.
* Spent some time trying to get a test platform working to play with
Rafael's wakelock patches. So far there seems to be an issue getting the
panda board to notice wake-events after suspending.
* Finished a first rough draft summarizing Android upstreaming meeting
from last week. The hope is to publish it to lwn once complete.
* Tried to address a number of comments on the fadvise volatile patches.
Integrated a few fixes to issues noticed by reviewers, and proposed
using a different interface if folks feel fadvise isn't appropriate.
Found an ugly locking issue I need to solve.
* Handled some Android-subteam items.
=== Plans ===
* Finish summary writeup and send to lwn
* Read over other fadvises discussions going on, and review interval
kinterval tree implementation sent out by Andrea Righi.
* Read more on the pagecache code, and try to take another pass at
fadvise volatile code.
=== Issues ===
* NA
[ACTIVITY][weekly][linaro] (Dave Martin) 2012-01-30 - 2012-02-17
== Dave Martin <dmart> ==
=== Activity Summary ===
* big.LITTLE switcher bringup on the ARM model to be delivered to
Linaro (builds; mostly, but not completely, working)
* Linaro Connect
* Started hacking some patches to enter the kernel in HYP mode to
allow the kernel to install its own hypervisor code at run-time --
potentially of interest to the big.LITTLE and KVM folks.
-> git://git.linaro.org/people/dmart/linux-3-arm.git
arm/hyp-entry+zImage-bounce-hacks (zImage decompressor runs mostly in
SVC mode, appears to work, but the zImage hacks are fundamentally
flawed and may not work on real hardware)
-> git://git.linaro.org/people/dmart/linux-3-arm.git
arm/hyp-entry+lpae (zImage decompressor runs natively in hyp mode --
currently extremely incomplete and out of sync with the other
branches)
-> git://git.linaro.org/people/dmart/boot-wrapper.git
hyp-entry/fixes (fixes on top of Rusty's boot-wrapper required for
actually testing the above branches on the model)
This work is not posted upstream yet: the plan is to get a sane
implementation and a reasonably clean patch series before posting an
upstream RFC.
=== Plans ===
* Sync the various arm/hyp-entry branches and cleanly separate the
main kernel stuff from the zImage decompressor stuff
* Address the various comments received so far.
* Modify the in-kernel hypervisor stub just to provide a raw "jump to
this address in hyp mode" call instead of a cooked "set hypervisor
vectors" call. This is closer to Christoffer Dall's existing
implementation for KVM, and is both simpler and more flexible than my
current approach.
* Clean up main kernel patches and post upstream RFC.
* Get the zImage decompressor working in hyp mode; post for review.
* Draft initial specification for the big.LITTLE implementation
details within Linaro, and flesh out the blueprint.
* Finish debugging the GNU-ised ARM switcher on the A15+A7 model.
=== Work Items ===
no update
=== Absences ===
none planned yet
=== Highlights ===
* Attended Linaro Connect. Now a bit exhausted. :)
* Presented on merge_config.sh script. Interesting discussion around how
even within linaro we have a variety of build systems with which we will
have to integrate the concept of config fragments. The question of who
maintains the fragments is still somewhat open, but hopefully we can
centralize their location in the linaro kernel source maintained by
Andrey. Two interesting suggestions were to have something like a
source command in config fragments, as well as some commented out
annotation in the resulting config. Will have to look into these in the
future.
* Dropped by the Android workgroup room and worked with Vishal and Amit
on the Android team to get the origen fb console working with software
rendering under Android. It was great to go into the Android room and
get really useful help in working out what the problems were. This was
really useful for Demo Friday, and great example of the benefit of
attending Linaro Connect.
* Had some discussions as well as attended talks about plans for
Android's ion infrastructure. There seems to be a fair amount of
community interest in it, but from the Google folks' comments, it seems
like it may have a fair amount of churn in the future, so it may not be
best to upstream it yet. Having some point for community discourse and
collaboration (if not a centralized merge point) is needed.
* Re-sent android-alarm driver to GregKH for staging, as he had some
last minute requests on minor patch ordering issues.
* Resolved the last few bugs I could trigger with my range-tree
implementation of fadvise volatile code. Sent out to lkml for review. So
far only minor comments, but I did get some mail today on a different
but related fadvise effort that is also using range data.
* Attended the Android upstreaming effort community face to face meeting
organized by Tim Bird. It was ~4 hours and covered a lot of material.
Very positive interaction overall with the Google folks. They seem to be
in agreement with most of our approaches, and where they disagreed they
were not dismissive, and were open to us still prototyping and trying to
convince them otherwise.
* Demoed the origen board running Android on a vanilla linus' HEAD
3.3-rc kernel with only two minor patches. Repeated myself endlessly to
probably everyone.
=== Plans ===
* Need to summarize and organize my thoughts from the week, and catch up
on some Android Kernel Subteam items.
* Plan on closer review of Rafael's wakelock patches that were sent out
and try to integrate them with the android alarm timers work in staging.
* Read over other fadvises discussions going on, and review interval
kinterval tree implementation sent out by Andrea Righi.
* Take another pass at fadvise volatile code.
* Ping tglx on 3.4 queue.
=== Issues ===
* NA
== Highlights ==
* Deep dive into signal/clone/exit handling to better understand
current LMK technical flaws. As a side effect noticed a lot of other
bugs (not only in LMK).
* Further investigation on interactive cpufreq dependencies. Looking
into various CPU idle notifiers, PM callbacks and cpuidle stuff.
This is all parts of proper handling of cpufreq interactive governor.
(Well, now it appears that idle notifiers are no good, as scheduler
might provide a per-cpu load avg values, which, if accurate enough,
might be a suitable replacement.)
* Got not much time to continue LMK-userland stuff, though. But this
is still near the top of my 'interesting things to do' list.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
== Rajendra Nayak <rnayak> ==
=== Highlights ===
* Started writing a generic system control module driver for
OMAP2/3/4, with exported api's for system control read/write.
Needed mainly for omap-hsmmc-dt adaptation as omap-hsmmc
currently does system control read/writes from machine code by
passing function pointers to the driver. This needs cleanup
before omap_hsmmc can work with DT.
* Cleaned up the use/abuse of pdev->id across omap-hsmmc driver.
Again a pre-requisite step before omap-hsmmc can work with DT.
* Reworked TWL DT regulator patches based on off-list discussions
with Benoit to make non-DT and DT both use a common lookup table.
* Caught-up on all the pinctrl DT discussions on list while I was
off 3 weeks in nice.
=== Plans ===
* Repost v3 of TWL DT series. Need to wait for Benoit to post his
which adds twl*.dtsi files.
* Continue work on system control module driver.
* omap-hsmmc DT adaptation.
* Attend connect.
=== Misc ===
* Was off on 27th and 26th was a holiday in India.
=== Highlights ===
* Sent android-alarm drivers to Greg for inclusion into staging. He's
currently changing employers, but said he's planning on merging them
into staging for 3.4.
* Worked on getting origen board booting with Android on a vanilla
3.3-rc kernel. Got close, even have boot console graphics working, but
for some reason gralloc is failing. Will try to work this out over
connect.
* Got Panda board ready for Android demo running on a (almost) vanilla
linux 3.3-rc2 kernel. Only required a single ~4 line patch.
* Spent a good chunk of the week trying to integrate the range-tree
implementation into fadvise volatile work. Unfortunately this was much
more difficult then I expected, and I had three or four false starts
that required entirely rearchitecting the approach each time. Almost
gave up, but finally last night I came up with a reasonable approach,
and have integrated a first pass. Wanted to send something out by
friday, but its just not well enough tested, so I'll hopefully get it
out next week.
* Sent out my 3.4 queue to tglx for merging.
* Reviewed a couple of ELC presentations and provided feedback.
* Ran email meeting for Android Kernel Sub-team
=== Plans ===
* Lots of connect stuff
* Finish and send out first working range-tree fadivse volatile
implementation
* Do presentation on merge_config.sh script
* Work on origen Android issues w/ vanilla kernel.
* Present on Linaro's Android upstreaming
=== Issues ===
NA
== Linus Walleij linusw ==
=== Highlights ===
* Pushed pin control fixes for -rc1 and Torvalds pulled
them in.
* I have a branch for the nVidia Tegra pin control.
* Discussing pin control, pinmux ...
* Upstreaming the PL022 SPI driver, Mark Brown
suggested we move messages queues to the SPI
core. It was easy to to so I hacked a v1 and then
a v2 based on Grant's suggestions.
* Preparing a conference presentation on pin control
for the Embedded Linux Conference. This will be
used as a basis for public explanation and transparency
into the subject as well.
=== Plans ===
* Linaro Connect, Android Builders and ELC.
* Send patches upstream for -rc2.
* dummy pinmuxes akin to dummy regulators, we need
to see if this is a good idea or not.
* 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 ===
* At first I merged the Tegra pin control into my for-next
branch, then had second thoughts and removed it
because the size scares me. The author thinks I'm lame
and claims to lose interest in pin control. Wrote back
in private that I feel bad about this.
* Ux500 mainlining having second priority.
Thanks,
Linus Walleij
== Saugata Das sdas ==
=== Activity Summary ===
* Context ID patch submitted to MMC mailing list for comments
* CMD23 patch submitted for mmci driver
=== Plans ===
* Attend connect
* Integration of context ID, tag and packed command features
=== Issues ===
* None
We'd like to use this function in the android low memory killer driver, so
let's export it.
Also, move next_tgid() to kernel/pid.c, so now it lives with the rest of
pid library functions and does not depend on procfs. Plus, we may now hide
find_ge_pid() from the global namespace.
While at it, also turn next_tgid()'s comments into kerneldoc format.
There should be no functional changes.
Signed-off-by: Anton Vorontsov <anton.vorontsov(a)linaro.org>
---
fs/proc/base.c | 43 -------------------------------------------
include/linux/pid.h | 9 ++++++++-
kernel/pid.c | 41 ++++++++++++++++++++++++++++++++++++++++-
3 files changed, 48 insertions(+), 45 deletions(-)
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 5485a53..84b8625 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -3324,49 +3324,6 @@ out:
return result;
}
-/*
- * Find the first task with tgid >= tgid
- *
- */
-struct tgid_iter {
- unsigned int tgid;
- struct task_struct *task;
-};
-static struct tgid_iter next_tgid(struct pid_namespace *ns, struct tgid_iter iter)
-{
- struct pid *pid;
-
- if (iter.task)
- put_task_struct(iter.task);
- rcu_read_lock();
-retry:
- iter.task = NULL;
- pid = find_ge_pid(iter.tgid, ns);
- if (pid) {
- iter.tgid = pid_nr_ns(pid, ns);
- iter.task = pid_task(pid, PIDTYPE_PID);
- /* What we to know is if the pid we have find is the
- * pid of a thread_group_leader. Testing for task
- * being a thread_group_leader is the obvious thing
- * todo but there is a window when it fails, due to
- * the pid transfer logic in de_thread.
- *
- * So we perform the straight forward test of seeing
- * if the pid we have found is the pid of a thread
- * group leader, and don't worry if the task we have
- * found doesn't happen to be a thread group leader.
- * As we don't care in the case of readdir.
- */
- if (!iter.task || !has_group_leader_pid(iter.task)) {
- iter.tgid += 1;
- goto retry;
- }
- get_task_struct(iter.task);
- }
- rcu_read_unlock();
- return iter;
-}
-
#define TGID_OFFSET (FIRST_PROCESS_ENTRY + ARRAY_SIZE(proc_base_stuff))
static int proc_pid_fill_cache(struct file *filp, void *dirent, filldir_t filldir,
diff --git a/include/linux/pid.h b/include/linux/pid.h
index b152d44..33e350b 100644
--- a/include/linux/pid.h
+++ b/include/linux/pid.h
@@ -116,7 +116,6 @@ extern struct pid *find_vpid(int nr);
* Lookup a PID in the hash table, and return with it's count elevated.
*/
extern struct pid *find_get_pid(int nr);
-extern struct pid *find_ge_pid(int nr, struct pid_namespace *);
int next_pidmap(struct pid_namespace *pid_ns, unsigned int last);
extern struct pid *alloc_pid(struct pid_namespace *ns);
@@ -199,4 +198,12 @@ pid_t pid_vnr(struct pid *pid);
} while_each_thread(tg___, task); \
task = tg___; \
} while_each_pid_task(pid, type, task)
+
+struct tgid_iter {
+ unsigned int tgid;
+ struct task_struct *task;
+};
+
+struct tgid_iter next_tgid(struct pid_namespace *ns, struct tgid_iter iter);
+
#endif /* _LINUX_PID_H */
diff --git a/kernel/pid.c b/kernel/pid.c
index ce8e00d..34a52a6 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -522,7 +522,7 @@ EXPORT_SYMBOL_GPL(task_active_pid_ns);
*
* If there is a pid at nr this function is exactly the same as find_pid_ns.
*/
-struct pid *find_ge_pid(int nr, struct pid_namespace *ns)
+static struct pid *find_ge_pid(int nr, struct pid_namespace *ns)
{
struct pid *pid;
@@ -536,6 +536,45 @@ struct pid *find_ge_pid(int nr, struct pid_namespace *ns)
return pid;
}
+/**
+ * next_tgid() - Find the first task with tgid >= tgid
+ * @ns: pointer to the pid namespace
+ * @iter: iterator
+ */
+struct tgid_iter next_tgid(struct pid_namespace *ns, struct tgid_iter iter)
+{
+ struct pid *pid;
+
+ if (iter.task)
+ put_task_struct(iter.task);
+ rcu_read_lock();
+retry:
+ iter.task = NULL;
+ pid = find_ge_pid(iter.tgid, ns);
+ if (pid) {
+ iter.tgid = pid_nr_ns(pid, ns);
+ iter.task = pid_task(pid, PIDTYPE_PID);
+ /* What we to know is if the pid we have find is the
+ * pid of a thread_group_leader. Testing for task
+ * being a thread_group_leader is the obvious thing
+ * todo but there is a window when it fails, due to
+ * the pid transfer logic in de_thread.
+ *
+ * So we perform the straight forward test of seeing
+ * if the pid we have found is the pid of a thread
+ * group leader, and don't worry if the task we have
+ * found doesn't happen to be a thread group leader.
+ */
+ if (!iter.task || !has_group_leader_pid(iter.task)) {
+ iter.tgid += 1;
+ goto retry;
+ }
+ get_task_struct(iter.task);
+ }
+ rcu_read_unlock();
+ return iter;
+}
+
/*
* The pid hash table is scaled according to the amount of memory in the
* machine. From a minimum of 16 slots up to 4096 slots at one gigabyte or
--
1.7.7
== Deepak Saxena <dsaxena> ==
=== Highlights ===
* Connect session planning
* Released 12.01 kernel (Big thanks to Andrey!)
* 12.01 monthly cycle closeout
* Various conversations on phone, irc, email to discuss kernel process.
=== Plans ===
* Finish preparing for connect
- Finalize any session details
- Schedule meetings
- Put together slides on kernel process
* 1-on-1's, sub-team meetings
=== Travel/Time Off ===
* Connect + ELC 02/04-02/20
(Taking the Train from Portland -> Oakland on 02/03 afternoon.
Taking days between Connect and ELC as semi-time off, will still
be responding to emails but will mostly be exploring around the
Bay area. Taking train back on 12/19 evening, back to work
Monday 12/20 afternoon).
== Highlights ==
* Sent out some patches to make current LMK driver don't grab
tasklist lock.
http://lkml.org/lkml/2012/1/29/114http://lkml.org/lkml/2012/1/29/115http://lkml.org/lkml/2012/1/29/116
* Continued work on adding low memory killer functionality
to the Android ActivityManager and friends;
* Further investigation on interactive cpufreq notifier.
* Prepared some material for the android upstraming meeting;
* Reviewed a bunch of battery fixes for v3.3.
== Plans ==
* Hope to send out a bit reworked (at least it should start using new
notifiers) interactive cpufreq driver mid this week;
* Get a working userspace LMK by the end of this week;
* Fix assorted pesky issues in the current drivers/staging/android/
(sparse and modpost warnings flood because of which I don't see
newly introduced warnings).
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
=== Highlights ===
* Re-factored and reworked Android alarm driver so that it can be
included into staging. Sent it out to Arve, Google Android team and
GregKH for comment. Got some good feedback from Arve, and further
reworked some of the patches accordingly. Will hopefully submit to
staging early next week.
* Reviewed Dmitry's usleep_range changes more carefully and provided
feedback.
* Got a little bit of time to spend on refactoring (de-recursing) the
range-tree implementation in preparation of integrating it into the
kernel.
* Handled weekly Android-subteam email meeting
* Spent the weekend & a bit of the week helping with an internal
customer issue.
* Spent some time catching up on community emails and issues I've
flagged but not handled since the new year, including sending out some
debuging patches for RTC issues.
* Sent out almost the last of the clocksource_register_khz/hz cleanups
for review.
* Queued community RTC, clocksource and time cleanups for 3.4 along with
my own rtc/time related fixes. Unfortunately tglx has been offline
recently, so I've not been able to send them for queuing.
* Lots of IBM internal administrative catchup from the new year.
=== Plans ===
* Submit android alarm driver to staging.
* Integration of range-tree idea into kernel space and fadvise work
* Review posix file locking code and determine if range-trees can be
used there.
* Some minor prep for Connect.
=== Issues ===
NA
== Linus Walleij linusw ==
=== Highlights ===
* Reviewed and merged some patches to pin control,
Tony Lindgren is starting to show interest and
submitting good patches.
* Discussing pinmux ...
* Reviewed different patches here and there. Tried
to do some Ux500 upstreaming.
* Preparing a conference presentation on pin control
for the Embedded Linux Conference. This will be
used as a basis for public explanation and transparency
into the subject as well.
* Apart from this occupied by administration (such as
travel arrangements, VISA etc) and internal meetings at
ST-Ericsson due to different things.
=== Plans ===
* Send patches upstream for -rc1 or -rc2.
* Prepare for Linaro Connect, Android Builders and ELC.
* dummy pinmuxes akin to dummy regulators, we need
to see if this is a good idea or not.
* 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 ===
* Tried to run a pin control meeting. Nobody from my
work group turned up. Luckily I had Mounir and Tony
Lindgren there to comfort me.
* Ux500 mainlining having second priority.
Thanks,
Linus Walleij
== Niklas Hernaeus <nhe> ==
=== General activity ===
* Continued DT for MMC
* Tried to allocate time for making plan for regulator DT. Know more next
week
* All administration done for going to Connect.
== Saugata Das sdas ==
=== Activity Summary ===
* Context ID patch internal review ongoing
* Reviewed packed command implementation
* Reviewed power OFF notify implementation
* Reviewed UFS driver implementation
* Brought up Samsung MMC-4.5 JIG on 8500 board
(Restriction: Only works in one bit mode due to the limitation imposed
by the micro-SD/SD bridge I am using. It does not stop me from
validation of features)
=== Plans ===
* Porting of SBC command support on mmci.c
* Validation of context ID, tag and packed command
* Submission of context ID patch
=== Issues ===
* Due to personal unavoidable reasons, I will return from Connect on 8th Feb
(I'm aware that there is a thread on linaro-dev discussing this exact
topic; this is a request for specific information, so I decided to start
a new thread)
Hello,
As has been pointed out elsewhere, it is very difficult to find
the exact git tree that corresponds to a kernel release. Currently the
problem I am having is that the 11.11 linaro kernel release
(linux-linaro-lt-omap_3.1.0-1402.5~oneiric1) works well on my new board,
but later kernels do not. While I can download the kernel tarball for
3.1.0-1402.5 from launchpad, I would much prefer to use the git tree
that it was produced from. Can anybody tell me exactly which git tree
was used to create that kernel, and which tag/branch I should be looking at?
Thanks,
--
Chris Lalancette
== Completed Work Items ==.
- Had to familiarize myself with Android internals and build process,
i.e. set up build environment, actually build a working Android image
from scratch (through quite a bit of hardships, heh). But now I'm
actually able to customize Android from the kernel down to the
userland. :-) Surely I played a bit with all this new stuff.
That might a good question whether I should actually mess with the
userland, but I think that familiarizing w/ Android internals is a
good thing even for a Linux kernel guy, especially as I'm going to
work on Android-related projects.
And this is all was to start preparing changes for ActivityManager
(i.e. add support for memory notifications).
- Started looking into interactive cpufreq governor. I forward-ported
it onto latest kernels, and again played a bit with it. The bad news
is that the governor depends on idle notifiers (notifiers, again :-)
And the notifiers are got a somewhat cool welcome by some ARM folks.
( http://lkml.org/lkml/2011/6/27/391 )
So, might be a good idea to reiterate the notifiers and cpufreq stuff
soon. But need to spend a bit more time on the code, so that I would
feel confident what exactly I'm going to defend.
--
Anton Vorontsov
Email: cbouatmailru(a)gmail.com
The Linaro Kernel Working Group (KWG) is excited to announce the
availability our January 2012 development snapshot:
linux-linaro-3.2-2021.01-0
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.
This is our first kernel release run by Andrey Konovalov and I want to
thank him for getting up and running in short time period and getting
this release out the door. Andrey will be creating a 3.3 tracking branch
soon and we can then start merging code from the other WGs and LTs to
provide a common baseline for the 2012.02 release.
The source tarball is available at:
http://launchpad.net/linux-linaro/3.2/3.2-2012.01/+download/linux-linaro-3.…
The kernel sources can also be accessed using git at:
git://git.linaro.org/people/ynk/linux-linaro-tracking.git
tag: linux-linaro-3.2-2012.01-0
This kernel includes the following changes from the 2011.11 kernel:
- Update to 3.2.1 stable kernel
- Various patches from 3.3-rc1 and other trees:
- Restart code cleanup (Russell King)
- Config fragment support (John Stultz)
- Pinctrl updates (Dong Aishang, Rajendra Nayak, Linus Walleij)
- Thermal cpu cooling branch from PMWG (Amit Kacchap, Jaecheol Lee)
- LPAE support (Catalin Marinas)
- MULTI_IRQ_HANDLER support (Marc Zyngier)
- ioremap() consolidation (Nicolas Pitre)
A full change log against the 3.2.1 release is available at:
http://launchpad.net/linux-linaro/3.2/3.2-2012.01/+download/CHANGELOG-linux…
High Priority Known Issues:
- None at this time
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-dev
Questions? https://ask.linaro.org/
== Deepak Saxena <dsaxena> ==
=== Highlights ===
* Caught up on most of pre-holiday emails
* Worked up updating and cleaning up KWG blueprints for 12.01 work
* Connect session planning
* Lots of meeting catching up with folks and planning for 2012.
=== Plans ===
* Release 12.01 kernel
* 12.02 planning
* Work on kernel wiki page updates
* Finish up connect session registration
* Cleanup remaining unfinished KWG roadmap cards
* 1-on-1's, sub-team meetings
=== Travel/Time Off ===
* Connect + ELC 02/04-02/20
(Taking the Train from Portland -> Oakland on 02/03 afternoon.
Taking days between
Connect and ELC as semi-time off, will still be responding to
emails but will mostly
be exploring around the bay area. Taking train back on 12/19 evening, back
to work Monday 12/20 afternoon).
* Discussion to generalize the maintenance process of kernel branches
> for the periodic Linaro releases. This still needs documenting in the
> wiki.
>
> * Merged a set of patches put together by Anand Gadiyar to add display
> support to the PandaBoard.
>
> * Merged the following additional patches:
>
> * d983450 cpufreq: Add documentation for sampling_down_factor
> * 054fcd5 ARM: S5P: Fix end address in memory resource information for UART devices
> * bf47520 ARM: make SWP emulation explicit on !CPU_USE_DOMAINS
> * 459967a ARM: fixup SMP alternatives in modules
> * 7144fbc ARM: 6654/1: perf/oprofile: fix off-by-one in stack check
> * 067dfdf ARM: 6659/1: Thumb-2: Make CONFIG_OABI_COMPAT depend on !CONFIG_THUMB2_KERNEL
> * cc0f308 ARM: 6656/1: hw_breakpoint: avoid UNPREDICTABLE behaviour when reading DBGDSCR
> * 40ef21c ARM: 6657/1: hw_breakpoint: fix ptrace breakpoint advertising on unsupported arch
> * 9e97118 ARM: ptrace: remove single-step emulation code
>
== Upstream oriented activities ==
* Review of Arnd Bergmann's flash card article for LWN.
* Incorporation of feedback to the patch adding Thumb2 support to the
P2V branch.
* Another look at the Thumb-2 compatibility fixes for OMAP from Dave
Martin.
* Review of a patch series adding support for SDHCI v3.00.
* Posted patches:
* Rework of the kernel decompressor code to improve efficiency
* Removal of the 4x expansion presumption while decompressing the kernel
* kprobes insn decoding fix
* Ignore mdesc->boot_params if out of range
* Fold lookup_machine_type() into setup_machine()
== Linaro kernel activities ==
* Looked at some bugs:
* Bug 660811
* Bug 720055
* Merged 2.6.37.1 into linaro-2.6.37
* Merged Dave Martin's Thumb2 compatibility patches for OMAP.
* Merged core ARM ffixes from RMK.
* Merged OMAP fixes from Tony Lindgren.
* Opened up the linaro-2.6.38 branch.
Nicolas
=== Highlights ===
* Input evdev timestamp patch was merged in maintainer's tree and queued
for 3.4
* merge_config.sh script that handles config fragments was merged into
3.3!
* Got my Linaro Connect flight/hotel booked.
* Spent most of the time working on range-tree implementation for the
fadvise volatile code. Managed to get insert/delete/lookup working &
also added splay-tree style self-balancing. Think I've knocked out the
obvious bugs, so now just have lots of testing to do. Also pinged akpm
on his thoughts, but didn't get much insight there, other then he wants
to be able to use it for posix file locking. Not 100% sure it will easy
to generically abstract it out.
* Ran email meeting for android kernel subteam
* Synced w/ Deepak
* Very brief review of Dmitry Antipov's usleep_range patch.
=== Plans ===
* Likely more IBM internal assistance on customer issue
* More testing of range-tree implementatoin in userland
* Integration of range-tree idea into kernel space and fadvise work
* Review posix file locking code and determine if range-trees can be
used there.
* Maybe send out alarmtimer work for staging? This has been on my plans
for way too long!
=== Issues ===
* I've been requested to help with an internal customer issue. This has
taken a little bit of time this week, but will likely spill into the
weekend and next week as well.
== Linus Walleij linusw ==
=== Highlights ===
* Posted a second iteration of the pin states patch,
which tied configuration to the driver, so the driver
would declare a number of configration states to
be activated by name. I start to think this approach
may be bad, so:
* Prepared a second alternative to pin configuration,
instead of driver-declared states, we provide a set
of named states in the platform data, maybe we will
tie this into the device as well so devices can request
pin states. Need to read feedback and iterate this
patch set.
* Rebasing my development trees to v3.3-rc1
* Reviewed different patches here and there. Sent
some sporadic U300 and Integrator patches.
* Helped our ALSA SoC guy play audio on the
mainline kernel - it works! So now patches for
the AB8500 ALSA SoC driver are in the works.
=== Plans ===
* Harvest and send patches upstream for -rc1 which is
usually pretty busy. pinctrl and ux500 alike.
* dummy pinmuxes akin to dummy regulators, we need
to see if this is a good idea or not.
* Prepare conference presentation for the
Embedded Linux Conference.
* 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 having second priority.
Thanks,
Linus Walleij
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