Hello,
On Tue, Jun 06, 2023 at 04:11:02PM -0400, Waiman Long wrote: ...
The current CPU exclusive behavior is limited to sibling cgroups only. Because of the hierarchical nature of cpu distribution, the set of exclusive CPUs have to appear in all its ancestors. When partition is enabled, we do a sibling exclusivity test at that point to verify that it is exclusive. It looks like you want to do an exclusivity test even when the partition isn't active. I can certainly do that when the file is being updated. However, it will fail the write if the exclusivity test fails just like the v1 cpuset.cpus.exclusive flag if you are OK with that.
Yeah, doesn't look like there's a way around it if we want to make .exclusive a feature which is useful on its own.
Instead, it can be sth like "if the parent is a partition root, cpuset implicitly tries to set all CPUs in its cpus file in its cpus.exclusive file" so that user-visible behavior stays unchanged depending on past history.
If parent is a partition root, auto reservation will be done and cpus.exclusive will be set automatically just like before. So existing applications using partition will not be affected.
Sounds great.
Thanks.