Re: [PATCH 0/3] Make tasks always have non-zero pids

From: sukadev
Date: Fri Oct 05 2007 - 01:53:29 EST


Pavel Emelianov [xemul@xxxxxxxxxx] wrote:
| Some time ago Sukadev noticed that the vmlinux size has

Cedric pointed it out to me first :-)

| grown 5Kb due to merged pid namespaces. One of the big
| problems with it was fat inline functions. The other thing
| was noticed by Matt - the checks for task's pid to be not
| NULL take place and make the kernel grow due to inlining,
| but these checks are not always needed.
|
| In this series I introduce a static pid (dummy), according
| to Matt's proposal, which is assigned to tasks during the
| detach_pid and transfer_pid instead of NULL. This pid lives
| in the init pid namespace and has the id = 0, so all the
| task_xid_xnr() calls will still return 0 on a dead task.
|
| Places that get the struct pid from task either get it from
| the current (in this case they will never get this dummy),
| or use it to compare with some other value (so they will
| work the same for both NULL and dummy pids).
|
| This saves up to 340 bytes for i386 kernel with minimal
| config and probably more with more users of pids.
|
| Tested on i386 and x86_64 boxes. Tasks still live and die,
| namespaces and proc still work.
|
| Signed-off-by: Pavel Emelyanov <xemul@xxxxxxxxxx>

Acked-by: Sukadev Bhattiprolu <sukadev@xxxxxxxxxx>
-
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/