Hi, On 12/01/21 16:53, Daniel Bristot de Oliveira wrote: > cgroups v2 allows the cpuset controller to be enabled/disabled on > demand. On Fedora 32, cpuset is disabled by default. To enable it, > a user needs to: > > # cd /sys/fs/cgroup/ > # echo +cpuset > cgroup.subtree_control > > Existing cgroups will expose the cpuset interface (e.g., cpuset.cpus > file). By default, cpuset.cpus has no CPU assigned, which means that > existing tasks will move to a cpuset without cpus.
This is kind of confusing, though. Isn't it? > Initially, I thought about returning an error and blocking the > operation. However, that is indeed not needed. The cpuset without > CPUs assigned will be a non-root cpuset, hence its cpu mask will > be the same as the root one. So, the bandwidth was already accounted, > and the task can proceed. > > Signed-off-by: Daniel Bristot de Oliveira <[email protected]> > Cc: Ingo Molnar <[email protected]> > Cc: Peter Zijlstra <[email protected]> > Cc: Juri Lelli <[email protected]> > Cc: Vincent Guittot <[email protected]> > Cc: Dietmar Eggemann <[email protected]> > Cc: Steven Rostedt <[email protected]> > Cc: Ben Segall <[email protected]> > Cc: Mel Gorman <[email protected]> > Cc: Daniel Bristot de Oliveira <[email protected]> > Cc: Li Zefan <[email protected]> > Cc: Tejun Heo <[email protected]> > Cc: Johannes Weiner <[email protected]> > Cc: Valentin Schneider <[email protected]> > Cc: [email protected] > Cc: [email protected] > --- > kernel/sched/deadline.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c > index 943aa32cc1bc..788a391657a5 100644 > --- a/kernel/sched/deadline.c > +++ b/kernel/sched/deadline.c > @@ -2871,6 +2871,13 @@ int dl_task_can_attach(struct task_struct *p, > bool overflow; > int ret; > > + /* > + * The cpuset has no cpus assigned, so the thread will not > + * change its affinity. Is this always the case also in the presence of deeper hierarchies? Thanks, Juri

