Re: [PATCH 6/6] Makes procs file writable to move all threads by tgid at once

Benjamin Blum
2009-08-04T01:11:16Z

On Mon, Aug 3, 2009 at 6:05 PM, Paul Menage<menage@google.com> wrote:
> On Mon, Aug 3, 2009 at 5:56 PM, Benjamin Blum<bblum@google.com> wrote:
>> No, the idea is that even though we had a reference that we already
>> dropped, we in effect "traded" the newcg to the task for its oldcg,
>> giving it our reference on newcg and gaining its reference on oldcg. I
>> believe the cgroup_mutex guarantees that it'll still be there when we
>> do the trade - perhaps a BUG_ON(tsk->cgroups != oldcg) is wanted
>> inside the second task_lock section there?
>
> I don't think that's safe, since the task could exit and drop its
> reference (and switch to init_css_set).

Yes, but while holding the task's lock while trading the pointers we
first do a PF_EXITING check, so it can't have gone away if we
successfully traded.

>>>
>>> I think it's more intuitive to return 1 if found and 0 if not found.
>>
>> I was sticking with the convention of nonzero return values indicating
>> failure, as is used everywhere else in this context.
>>
>
> Make it a bool, so that it's intuitively more obvious that true==success?

ok.