On Sat, Oct 07, 2023 at 02:02:57PM +0000, Yafang Shao <laoar.shao@xxxxxxxxx> wrote: > The task cannot modify cgroups if we have already acquired the > css_set_lock, thus eliminating the need to hold the cgroup_mutex. Following > this change, task_cgroup_from_root() can be employed in non-sleepable contexts. IIRC, cset_cgroup_from_root() needs cgroup_mutex to make sure the `root` doesn't disappear under hands (synchronization with cgroup_destroy_root(). However, as I look at it now, cgroup_mutex won't synchronize against cgroup_kill_sb(), it may worked by accident(?) nowadays (i.e. callers pinned the root implicitly in another way). Still, it'd be good to have an annotation that ensures, the root is around when using it. (RCU read lock might be fine but you'd need cgroup_get_live() if passing it out of the RCU read section.) Basically, the code must be made safe against cgroup v1 unmounts. Michal
Attachment:
signature.asc
Description: PGP signature