On Wed, Mar 16, 2016 at 06:04:56PM +0100, Peter Zijlstra wrote: > > Hmmm... I don't think it'd be safe to merge the two ops. Nothing > > guarantees that the RCU callback of cpu controller is called after the > > cgroup core one and cgroup core one would do use-after-free. Just > > changing offline to released should do. > > I'm confused, the code looks like: > > static void cpu_cgroup_css_released(struct cgroup_subsys_state *css) > { > struct task_group *tg = css_tg(css); > > sched_offline_group(tg); > } > > static void cpu_cgroup_css_free(struct cgroup_subsys_state *css) > { > struct task_group *tg = css_tg(css); > > /* > * Relies on the RCU grace period between css_release() and this. > */ > sched_free_group(tg); > }
Oops, misread the two functions swapping positions as getting merged. Yes, that is correct. Sorry about the confusion. Please feel free to add Acked-by: Tejun Heo <t...@kernel.org> Thanks. -- tejun