Re: [PATCH] cls_cgroup: Fix rcu lockdep warning

From: Li Zefan
Date: Thu Sep 02 2010 - 21:05:02 EST


Peter Zijlstra wrote:
> On Thu, 2010-09-02 at 14:30 +0800, Li Zefan wrote:
>> Calling task_subsys_state() without holding rcu_read_lock or
>> cgroup_mutex can cause lockdep warning.
>>
>
> That is not a suitable changelog.
>
> Was the warning correct? Is your patch correct? What does RCU protect
> here and why can we use classid after dropping it.
>
> Simply frobbing code to make the warning go away is not good.
>
>

task->cgroups and task->cgroups->subsys[i] are protected by RCU.
So we avoid accessing invalid pointers here. This can happen,
for example, when you are deref those pointers while someone move
@task from one cgroup to another.

otoh, there is no lock rule for ->classid.
--
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/