On 7/27/21 4:26 PM, Waiman Long wrote:
On 7/26/21 7:14 PM, Tejun Heo wrote:
On Tue, Jul 20, 2021 at 10:18:29AM -0400, Waiman Long wrote:
+static inline void notify_partition_change(struct cpuset *cs,
+ int old_prs, int new_prs)
+{
+ if ((old_prs == new_prs) ||
+ ((old_prs != PRS_ERROR) && (new_prs != PRS_ERROR)))
+ return;
+ cgroup_file_notify(&cs->partition_file);
I'd generate an event on any state changes. The user have to read the
file
to find out what happened anyway.
Thanks.
From my own testing with "inotify_add_watch(fd, file, IN_MODIFY)",
poll() will return with a event whenever a user write to
cpuset.cpus.partition control file. I haven't really look into the
sysfs code yet, but I believe event generation will be automatic in
this case. So I don't think I need to explicitly add a
cgroup_file_notify() when users modify the control file directly.
Other indirect modification may cause the partition value to change
to/from PRS_ERROR and I should have captured all those changes in this
patchset. I will update the patch to note this point to make it more
clear.
After thinking about it a bit more it, it is probably not a problem to
call cgroup_file_notify() for every change as this is not in a
performance critical path anyway. I will do some more testing to find
out if doing cgroup_file_notify() for regular file write will cause an
extra duplicated event to be sent out, I will probably stay with the
current patch. Otherwise, I can change it to always call
cgroup_file_notify().
Cheers,
Longman