Re: [RFC] ps command race fix

From: KAMEZAWA Hiroyuki
Date: Mon Jul 24 2006 - 22:46:05 EST


On Mon, 24 Jul 2006 19:33:18 -0700
Andrew Morton <akpm@xxxxxxxx> wrote:

> On Tue, 25 Jul 2006 11:08:35 +0900
> KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
>
> > > Then the seek and read and such semantics are nice and stable and
> > > simple.
> > >
> > yes...
> > I think snapshot at open() is okay.
>
> We cannot do a single kmalloc() like cpuset does.
>
> The kernel presently kind-of guarantees that a 32k kmalloc() will work,
> although the VM might have to do very large amounts of work to achieve it.
>
> But 32k is only 8192 processes, so a snapshot will need multiple
> allocations and a list and trouble dropping and retaking tasklist_lock to
> allocate memory and keeping things stable while doing that. I suspect
> it'll end up ugly.
>

Hm, how about using bitmap instead of table ? (we'll have many holes but...)
Implementing
- sytem-wide bitmap of used tgid which is updated only when /proc is opened
seems not to be much problem. 32k kmalloc can store 256k pids.

BTW, how large pids and how many proccess in a (heavy and big) system ?

-Kame

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/