|| ||"Serge E. Hallyn" <firstname.lastname@example.org>|
|| ||[RFC] [PATCH 00/13] Introduce task_pid api|
|| ||Mon, 14 Nov 2005 15:23:41 -0600|
|| ||Hubertus Franke <email@example.com>,
Dave Hansen <firstname.lastname@example.org>|
I'm part of a project implementing checkpoint/restart processes.
After a process or group of processes is checkpointed, killed, and
restarted, the changing of pids could confuse them. There are many
other such issues, but we wanted to start with pids.
This patchset introduces functions to access task->pid and ->tgid,
and updates ->pid accessors to use the functions. This is in
preparation for a subsequent patchset which will separate the kernel
and virtualized pidspaces. This will allow us to virtualize pids
from users' pov, so that, for instance, a checkpointed set of
processes could be restarted with particular pids. Even though their
kernel pids may already be in use by new processes, the checkpointed
processes can be started in a new user pidspace with their old
virtual pid. This also gives vserver a simpler way to fake vserver
init processes as pid 1. Note that this does not change the kernel's
internal idea of pids, only what users see.
The first 12 patches change all locations which access ->pid and
->tgid to use the inlined functions. The last patch actually
introduces task_pid() and task_tgid(), and renames ->pid and ->tgid
to __pid and __tgid to make sure any uncaught users error out.
Does something like this, presumably after much working over, seem