On Wed, May 03, 2023 at 11:01:36PM -0400, Waiman Long wrote:
On 5/2/23 18:27, Michal Koutný wrote:I really don't like the implicit switching behavior. This is interface
On Tue, May 02, 2023 at 05:26:17PM -0400, Waiman Long <longman@xxxxxxxxxx> wrote:It is something like that. However, the current scheme of automatic
In the new scheme, the available cpus are still directly passed down to anew scheme
descendant cgroup. However, isolated CPUs (or more generally CPUs dedicated
to a partition) have to be exclusive. So what the cpuset.cpus.reserve does
is to identify those exclusive CPUs that can be excluded from the
effective_cpus of the parent cgroups before they are claimed by a child
partition. Currently this is done automatically when a child partition is
created off a parent partition root. The new scheme will break it into 2
separate steps without the requirement that the parent of a partition has to
be a partition root itself.
1st step:
echo C >p/cpuset.cpus.reserve
# p/cpuset.cpus.effective == A-C (1)
2nd step (claim):
echo C' >p/c/cpuset.cpus # C'⊆C
echo root >p/c/cpuset.cpus.partition
reservation is also supported, i.e. cpuset.cpus.reserve will be set
automatically when the child cgroup becomes a valid partition as long as the
cpuset.cpus.reserve file is not written to. This is for backward
compatibility.
Once it is written to, automatic mode will end and users have to manually
set it afterward.
behavior modifying internal state that userspace can't view or control
directly. Regardless of how the rest of the discussion develops, this part
should be improved (e.g. would it work to always try to auto-reserve if the
cpu isn't already reserved?).