Hi, On Tue, Apr 02, 2024 at 07:04:58PM +0200, Michal Koutn?? wrote: > Hello. > > On Thu, Mar 21, 2024 at 10:39:45PM +0100, Petr Malat <oss@xxxxxxxxx> wrote: > > Requiring cpuset.cpus.effective to be a subset of cpuset.cpus makes it > > hard to use as one is forced to configure cpuset.cpus of current and all > > ancestor cgroups, which requires a knowledge about all other units > > sharing the same cgroup subtree. > > > Also, it doesn't allow using empty cpuset.cpus. > ^^^^^^^^^^^^^^^^^ > _this_ is what cpuset has been missing IMO > > I think cpuset v2 should allow empty value in cpuset.cpus (not only > default but also as a reset (to the default)) which would implicitely > mean using whatever CPUs were passed from parent(s). > > Does that make sense to you too? > > Thus the patch(es) seems to need to be extended to handle a case when > empty cpuset.cpus is assigned but no cpuset.cpus.exclusive are > specified neither. I don't see how this could be useful - consider hierarchy A/B, where A configures the cpuset.cpus and B doesn't and inherits if from A. If B is then made root partition it will use exactly the same CPUs as A, thus these CPUs will not be available in A. Also, there can't be a sibling of B, because there are no CPUs left for it. As B is then the only working child of A, no resource distribution can happen on A. So there is no point in creating B and one could use A directly. Petr