Re: [PATCH] cgroup: missing rcu read lock around task_css_set

From: Sasha Levin
Date: Tue Mar 04 2014 - 12:21:07 EST


On 03/03/2014 06:00 PM, Sasha Levin wrote:
On 03/03/2014 05:45 PM, Tejun Heo wrote:
On Mon, Mar 03, 2014 at 05:43:11PM -0500, Sasha Levin wrote:
On 03/03/2014 05:33 PM, Tejun Heo wrote:
On Sat, Mar 01, 2014 at 10:00:11PM -0500, Sasha Levin wrote:
rcu read lock should be held when calling and working with task_css_set.

This patch also fixes a related lockdep warning.

Hmmm... PF_EXITING should be visible at that point and cset can't
change anymore. We prolly need to update lockdep annotation rather
than adding spurious rcu locking around it. Against which branch is
it? Can you please post the lockdep warning?

I see it on -next.

I think the right thing to do is using task_css_set_check() with
PF_EXITING check and add comment explaining that cset can no longer
change. Can you please write up a patch?

Hrm... there is a PF_EXITING check there already:

#define task_css_set_check(task, __c) \
rcu_dereference_check((task)->cgroups, \
lockdep_is_held(&cgroup_mutex) || \
lockdep_is_held(&css_set_rwsem) || \
((task)->flags & PF_EXITING) || (__c))

I see it's not happening on Linus's master so I'll run a bisection to figure out what broke it.

Hi Tejun,

It bisects down to your patch: "cgroup: drop task_lock() protection around task->cgroups". I'll
look into it later unless it's obvious to you.


Thanks,
Sasha

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