Re: [PATCH v8 4/6] cpuset: Make generate_sched_domains() recognize isolated_cpus
From: Waiman Long
Date: Mon May 28 2018 - 21:24:27 EST
On 05/28/2018 09:12 PM, Waiman Long wrote:
> On 05/24/2018 06:28 AM, Juri Lelli wrote:
>> On 17/05/18 16:55, Waiman Long wrote:
>>
>> [...]
>>
>>> @@ -849,7 +860,12 @@ static void rebuild_sched_domains_locked(void)
>>> * passing doms with offlined cpu to partition_sched_domains().
>>> * Anyways, hotplug work item will rebuild sched domains.
>>> */
>>> - if (!cpumask_equal(top_cpuset.effective_cpus, cpu_active_mask))
>>> + if (!top_cpuset.isolation_count &&
>>> + !cpumask_equal(top_cpuset.effective_cpus, cpu_active_mask))
>>> + goto out;
>>> +
>>> + if (top_cpuset.isolation_count &&
>>> + !cpumask_subset(top_cpuset.effective_cpus, cpu_active_mask))
>>> goto out;
>> Do we cover the case in which hotplug removed one of the isolated cpus
>> from cpu_active_mask?
> Yes, you are right. That is the remnant of my original patch that allows
> only one isolated_cpus at root. Thanks for spotting that.
I am sorry. I would like to take it back my previous comment. The code
above looks for inconsistency in the state of the effective_cpus mask to
find out if it is racing with a hotplug event. If it is, we can skip the
domain generation as the hotplug event will do that too. The checks are
still valid with the current patchset. So I don't think we need to make
any change here.
Cheers,
Longman