Re: [PATCH v3 0/9] cgroup/cpuset: Add new cpuset partition type & empty effecitve cpus

From: Waiman Long
Date: Tue Jul 27 2021 - 17:14:36 EST


On 7/26/21 7:17 PM, Tejun Heo wrote:
Hello,

On Tue, Jul 20, 2021 at 10:18:25AM -0400, Waiman Long wrote:
v3:
- Add two new patches (patches 2 & 3) to fix bugs found during the
testing process.
- Add a new patch to enable inotify event notification when partition
become invalid.
- Add a test to test event notification when partition become invalid.
I applied parts of the series. I think there was a bit of miscommunication.
I meant that we should use the invalid state as the only way to indicate
errors as long as the error state is something which can be reached through
hot unplug or other uncontrollable changes, and require users to monitor the
state transitions for confirmation and error handling.

Yes, that is the point of adding the event notification patch.

In the current code, direct write to cpuset.cpus.partition are strictly controlled and invalid transitions are rejected. However, changes to cpuset.cpus that do not break the cpu exclusivity rule or cpu hot plug may cause a partition to changed to invalid. What is currently done in this patchset is to add extra guards to reject those cpuset.cpus change that cause the partition to become invalid since changes that break cpu exclusivity rule will be rejected anyway. I can leave out those extra guards and allow those invalid cpuset.cpus change to go forward and change the partition to invalid instead if this is what you want.

However, if we have a complicated partition setup with multiple child partitions. Invalid cpuset.cpus change in a parent partition will cause all the child partitions to become invalid too. That is the scenario that I don't want to happen inadvertently. Alternatively, we can restrict those invalid changes if a child partition exist and let it pass through and make it invalid if it is a standalone partition.

Please let me know which approach do you want me to take.

Cheers,
Longman