On Sun, Jan 29, 2012 at 07:26:55PM -0800, Eric W. Biederman wrote:
Anton Vorontsov anton.vorontsov@linaro.org writes:
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.
Ouch no.
There is find_ge_pid that is general purpose, and there are a lot of things with the task list. But this iterator is specific to the implementation of proc especially in how it grabs and drops locks.
Exactly, the way procfs grabs and drops locks is very attractive for us to reuse in lowmemorykiller driver. :-) Proc is efficient in a way that it does not need to hold the tacklist lock (otherwise, I guess, it could be prone to attacks, e.g. by constantly readdiring /proc/ ?).
Using this code outside of /proc will make /proc harder to maintain than it already is.
Why in the world would you want to traverse processes by pids when there are well defined iterators for looping over tasks already.
We just did not want to hold the global tasklist lock, if we could avoid it. Low memory killer is a low priority stuff, and grabbing tasklist lock seemed inefficient.
Thanks,