Hello, On Tue, Jul 26, 2022 at 04:32:57PM +0200, Michal Koutný wrote: > On Sat, Jul 23, 2022 at 04:28:28AM -1000, Tejun Heo <tj@xxxxxxxxxx> wrote: > > This makes the hotter paths - fork and exit - slower as they're always > > forced into the slow path. There is no reason to force this on everyone > > especially given that more common static usage pattern can now completely > > avoid write-locking the rwsem. Write-locking is elided when turning on and > > off controllers on empty sub-trees and CLONE_INTO_CGROUP enables seeding a > > cgroup without grabbing the rwsem. > > Just a practical note that CLONE_INTO_CGROUP may not be so widespread > yet [1][2]. > But generally, the change makes sense to me. Yeah, I was disappoinetd that it wasn't being used by systemd already. It'd be great if the glibc situation can be rectified soon because this is a much better interface. > > + CGRP_ROOT_FAVOR_DYNMODS = (1 << 4), > > + > > + /* > > * Enable cpuset controller in v1 cgroup to use v2 behavior. > > */ > > - CGRP_ROOT_CPUSET_V2_MODE = (1 << 4), > > + CGRP_ROOT_CPUSET_V2_MODE = (1 << 16), > > > > /* > > * Enable legacy local memory.events. > > */ > > - CGRP_ROOT_MEMORY_LOCAL_EVENTS = (1 << 5), > > + CGRP_ROOT_MEMORY_LOCAL_EVENTS = (1 << 17), > > > > /* > > * Enable recursive subtree protection > > */ > > - CGRP_ROOT_MEMORY_RECURSIVE_PROT = (1 << 6), > > + CGRP_ROOT_MEMORY_RECURSIVE_PROT = (1 << 18), > > Why this new gap in flag bits? To distinguish core and per-controller flags. Thanks. -- tejun