Hello. On Fri, Mar 17, 2023 at 11:15:07AM -0400, Waiman Long wrote: > * Iterate through each task of @cs updating its cpus_allowed to the > * effective cpuset's. As this function is called with cpuset_rwsem held, > - * cpuset membership stays stable. > + * cpuset membership stays stable. For top_cpuset, task_cpu_possible_mask() > + * is used instead of effective_cpus to make sure all offline CPUs are also > + * included as hotplug code won't update cpumasks for tasks in top_cpuset. > */ On Wed, Mar 15, 2023 at 11:06:20AM +0100, Michal Koutný wrote: > I see now that it returns offlined cpus to top cpuset's tasks. I considered only the "base" set change cs->effective_cpus -> possible_mask. (Apologies for that mistake.) However, I now read the note about subparts_cpus > * effective_cpus contains only onlined CPUs, but subparts_cpus > * may have offlined ones. So if subpart_cpus keeps offlined CPUs, they will be subtracted from possible_mask and absent in the resulting new_cpus, i.e. undesirable for the tasks in that cpuset :-/ Michal