[Devel] [RFC][PATCH] Add child reaper to struct pspace
Cedric Le Goater
clg at fr.ibm.com
Fri Sep 8 03:29:54 PDT 2006
Sukadev Bhattiprolu wrote:
> Cedric Le Goater [clg at fr.ibm.com] wrote:
> |
> | <snip>
> |
> | > */
> | > static void
> | > forget_original_parent(struct task_struct *father, struct list_head *to_release)
> | > @@ -669,7 +670,7 @@ forget_original_parent(struct task_struc
> | > do {
> | > reaper = next_thread(reaper);
> | > if (reaper == father) {
> | > - reaper = child_reaper;
> | > + reaper = father->pspace->child_reaper;
> | > break;
> | > }
> | > } while (reaper->exit_state);
> | > @@ -857,7 +858,7 @@ fastcall NORET_TYPE void do_exit(long co
> |
> | what about killing all the task in that pid space if child_reaper == init
> | dies ?
> |
>
> We probably need that for instance when a process in the parent pspace
> kills the init of a child pspace, we should destroy the child pspace
> by killing all the tasks in the child pspace including the child reaper.
>
> I guess we need to maintain a list of task_structs in the pspace and walk
> that list. Will work on that as a separate patch.
checkout the openvz kernel. it adds a do_initproc_exit() routine in
kernel/exit.c which is interesting to study for this purpose
http://git.openvz.org/
this is not the method followed by vserver, though, which reparents to the
reall init process.
C.
_______________________________________________
Containers mailing list
Containers at lists.osdl.org
https://lists.osdl.org/mailman/listinfo/containers
More information about the Devel
mailing list