Re: [RFC] ps command race fix

From: Andrew Morton
Date: Mon Jul 24 2006 - 21:58:32 EST


On Mon, 24 Jul 2006 18:48:47 -0700
Paul Jackson <pj@xxxxxxx> wrote:

> Another possibility (perhaps a really stupid idea ;) would be to
> snapshot the list of pids on the open, and let the readdir() just
> access that fixed array.

The patch under discussion does precisely this. (Awkwardly. Using
kmalloc-pre-object might be better).

> The kernel/cpuset.c cpuset_tasks_open() routine that displays the
> pids of tasks in a cpuset (the per-cpuset 'tasks' file) does this.

Your faith in large kmalloc()s is touching ;) I guess the number of pids
will be smaller for cpusets.

> Then the seek and read and such semantics are nice and stable and
> simple.
>
> Throw out the snapshot on the last close.

The patch under discussion didn't do this, although it could. But it still
permits rather a lot of kernel memory to be pinned.

-
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/