Re: [PATCH UPDATED 03/10] threadgroup: extend threadgroup_lock()to cover exit and exec

From: Tejun Heo
Date: Sun Nov 27 2011 - 14:30:11 EST


Hello, Frederic.

On Fri, Nov 25, 2011 at 03:01:39PM +0100, Frederic Weisbecker wrote:
> > + /*
> > + * @tsk's threadgroup is going through changes - lock out users
> > + * which expect stable threadgroup. Do this before actually
> > + * starting tearing down @tsk so that locked threadgroup has either
> > + * alive or dead tasks, not something inbetween.
> > + */
> > + threadgroup_change_begin(tsk);
> > +
>
> I still wonder why there is a so big coverage of this lock. I mean
> why is it called right before exit_irq_thread() and released so late.
> All we want is to lock cgroup_exit() I think, after which tasks can't be
> migrated.

That way, cgroup plugins never see tasks in the process of
deconstruction. Its ->mm, ->sighand, ->signal and so on either don't
exist or continue to exist across all cgroup callbacks. It's simpler
and safer (especially as bugs in this area would only be visible when
migration and exit race), and if we're gonna synchronize exit path at
all, there isn't anything to lose by excluding the whole thing.

Thanks.

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