On Sat, Mar 05, 2022 at 11:41:03AM +0800, Chengming Zhou wrote: > task_css_set_check() will use rcu_dereference_check() to check for > rcu_read_lock_held() on the read-side, which is not true after commit > dc6e0818bc9a ("sched/cpuacct: Optimize away RCU read lock"). This > commit drop explicit rcu_read_lock(), change to RCU-sched read-side > critical section. So fix the RCU warning by adding check for > rcu_read_lock_sched_held(). > > Fixes: dc6e0818bc9a ("sched/cpuacct: Optimize away RCU read lock") > Reported-by: Linux Kernel Functional Testing <lkft@xxxxxxxxxx> > Reported-by: syzbot+16e3f2c77e7c5a0113f9@xxxxxxxxxxxxxxxxxxxxxxxxx > Tested-by: Zhouyi Zhou <zhouzhouyi@xxxxxxxxx> > Signed-off-by: Chengming Zhou <zhouchengming@xxxxxxxxxxxxx> > --- > include/linux/cgroup.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h > index 1e356c222756..0d1ada8968d7 100644 > --- a/include/linux/cgroup.h > +++ b/include/linux/cgroup.h > @@ -450,6 +450,7 @@ extern struct mutex cgroup_mutex; > extern spinlock_t css_set_lock; > #define task_css_set_check(task, __c) \ > rcu_dereference_check((task)->cgroups, \ > + rcu_read_lock_sched_held() || \ > lockdep_is_held(&cgroup_mutex) || \ > lockdep_is_held(&css_set_lock) || \ > ((task)->flags & PF_EXITING) || (__c)) Acked-by: Tejun Heo <tj@xxxxxxxxxx> Thanks. -- tejun