All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anton Vorontsov <anton.vorontsov@linaro.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: "Arve Hjønnevåg" <arve@android.com>,
	"KOSAKI Motohiro" <kosaki.motohiro@gmail.com>,
	"Greg Kroah-Hartman" <gregkh@suse.de>,
	"San Mehat" <san@google.com>, "Colin Cross" <ccross@android.com>,
	"Oleg Nesterov" <oleg@redhat.com>,
	linux-kernel@vger.kernel.org, kernel-team@android.com,
	linaro-kernel@lists.linaro.org
Subject: Re: [PATCH 1/3] procfs: Export next_tgid(), move it to kernel/pid.c
Date: Mon, 30 Jan 2012 23:51:06 +0400	[thread overview]
Message-ID: <20120130195105.GA1689@oksana.dev.rtsoft.ru> (raw)
In-Reply-To: <m1boplkgzk.fsf@fess.ebiederm.org>

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,

-- 
Anton Vorontsov
Email: cbouatmailru@gmail.com

  reply	other threads:[~2012-01-30 19:51 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-30  1:13 [PATCH 1/3] procfs: Export next_tgid(), move it to kernel/pid.c Anton Vorontsov
2012-01-30  2:22 ` Greg KH
2012-01-30 19:50   ` Anton Vorontsov
2012-01-30  3:26 ` Eric W. Biederman
2012-01-30 19:51   ` Anton Vorontsov [this message]
2012-01-30 13:43 ` Oleg Nesterov
2012-01-30 20:49   ` Anton Vorontsov
2012-01-31  1:51     ` Eric W. Biederman
2012-02-01  4:19       ` Anton Vorontsov
2012-02-01  4:37         ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120130195105.GA1689@oksana.dev.rtsoft.ru \
    --to=anton.vorontsov@linaro.org \
    --cc=arve@android.com \
    --cc=ccross@android.com \
    --cc=ebiederm@xmission.com \
    --cc=gregkh@suse.de \
    --cc=kernel-team@android.com \
    --cc=kosaki.motohiro@gmail.com \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@redhat.com \
    --cc=san@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.