Re: [External] Re: [PATCH] cgroup/cpuset: Add a new isolated mems.policy type.

From: Michal Hocko
Date: Mon Sep 05 2022 - 06:51:03 EST


On Mon 05-09-22 18:30:55, Zhongkun He wrote:
> Hi Michal, thanks for your reply.
>
> The current 'mempolicy' is hierarchically independent. The default value of
> the child is to inherit from the parent. The modification of the child
> policy will not be restricted by the parent.

This breaks cgroup fundamental property of hierarchical enforcement of
each property. And as such it is a no go.

> Of course, there are other options, such as the child's policy mode must be
> the same as the parent's. node can be the subset of parent's, but the
> interleave type will be complicated, that's why hierarchy independence is
> used. It would be better if you have other suggestions?

Honestly, I am not really sure cgroup cpusets is a great fit for this
usecase. It would be probably better to elaborate some more what are the
existing shortcomings and what you would like to achieve. Just stating
the syscall is a hard to use interface is not quite clear on its own.

Btw. have you noticed this question?

> > What is the hierarchical behavior of the policy? Say parent has a
> > stronger requirement (say bind) than a child (prefer)?
> > > How to use the mempolicy interface:
> > > echo prefer:2 > /sys/fs/cgroup/zz/cpuset.mems.policy
> > > echo bind:1-3 > /sys/fs/cgroup/zz/cpuset.mems.policy
> > > echo interleave:0,1,2,3 >/sys/fs/cgroup/zz/cpuset.mems.policy
> >
> > Am I just confused or did you really mean to combine all these
> > together?

--
Michal Hocko
SUSE Labs