Re: [PATCH v5 1/2] cpuset: Enable cpuset controller in default hierarchy
From: Tejun Heo
Date: Tue Mar 20 2018 - 16:10:49 EST
Hello, Waiman.
On Tue, Mar 20, 2018 at 09:51:20AM -0400, Waiman Long wrote:
> >> + It lists the onlined CPUs that are actually allowed to be
> >> + used by tasks within the current cgroup. It is a subset of
> >> + "cpuset.cpus". Its value will be affected by CPU hotplug
> >> + events.
> > Can we do cpuset.cpus.availble which lists the cpus available to the
> > cgroup instead of the eventual computed mask for the cgroup? That'd
> > be more useful as it doesn't lose the information by and'ing what's
> > available with the cgroup's mask and it's trivial to determine the
> > effective from the two masks.
>
> I don't get what you want here. cpus is the cpuset's cpus_allowed mask.
> effective_cpus is the effective_cpus mask. When you say cpus available
> to the cgroup, do you mean the cpu_online_mask or the list of cpus from
> the parent? Or do you just want to change the name to cpus.available
> instead of effective_cpus?
The available cpus from the parent, where the effective is AND between
cpuset.available and cpuset.cpus of the cgroup, so that the user can
see what's available for the cgroup unfiltered by cpuset.cpus.
> Right, I will set CFTYPE_NOT_ON_ROOT to "cpus" and "mems" as we are not
> supposed to change them in the root. The effective_cpus and
> effective_mems will be there in the root to show what are available.
So, we can do that in the future but let's not do that for now. It's
the same problem we have for basically everything else and we've
stayed away from replicating the information in the root cgroup. This
might change in the future but if we do that let's do that
consistently.
Thanks.
--
tejun