Hello, Waiman.
Let's stop iterating on the patchset until we reach a consensus.
On Wed, Aug 25, 2021 at 05:37:49PM -0400, Waiman Long wrote:
1) The "cpuset.cpus" is not empty and the list of CPUs arePart of it can be reached by cpus going offline.
exclusive, i.e. they are not shared by any of its siblings.
2) The parent cgroup is a partition root.This condition can happen if a parent stop being a partition.
- 3) The "cpuset.cpus" is also a proper subset of the parent'sThis can happen if cpus go offline.
+ 3) The "cpuset.cpus" is a subset of the parent's
"cpuset.cpus.effective".
4) There is no child cgroups with cpuset enabled. This is forThis may make sense as a short cut for us but doesn't really stem from
eliminating corner cases that have to be handled if such a
condition is allowed.
interface or behavior requirements.
Of the four conditions listed, two are bogus (the states can be
reached through a different path and the configuration success or
failure can be timing dependent if configuration racaes against cpu
hotplug operations) and one maybe makes sense half-way and one is more
of a shortcut.
Can't we just replace these with transitions to invalid state with
proper explanation? That'd get rid of the error handling duplications
from both the kernel and user side, make automated configurations
which may race against hot plug operations reliable, and consistently
provide users with why something failed.