Messages in this thread | | | Date | Tue, 10 Apr 2007 17:38:08 +0400 | From | Oleg Nesterov <> | Subject | Re: init's children list is long and slows reaping children. |
| |
On 04/10, Ingo Molnar wrote: > > * Eric W. Biederman <ebiederm@xmission.com> wrote: > > > Ingo Molnar <mingo@elte.hu> writes: > > > > > no. Two _completely separate_ lists. > > > > > > i.e. a to-be-reaped task will still be on the main list _too_. The > > > main list is for all the PID semantics rules. The reap-list is just > > > for wait4() processing. The two would be completely separate. > > > > And what pray tell except for heuristics is the list of children used > > for? > > on a second thought: the p->children list is needed for the whole > child/parent task tree, which is needed for sys_getppid(). The question > is, does anything require us to reparent to within the same thread > group?
No! That is why I suggest (a long ago, in fact) to move ->children into ->signal_struct. When sub-thread forks, we set ->parent = group_leader. We don't need forget_original_parent() until the last thead exists. This also simplify do_wait().
However, this breaks the current ->pdeath_signal behaviour. In fact (and Eric thinks the same) this _fixes_ this behaviour, but may break things.
Oleg.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |