Re: [PATCH] adjust root-domain->online span in response tohotplug event

From: Gregory Haskins
Date: Mon Mar 10 2008 - 08:48:57 EST


>>> On Sat, Mar 8, 2008 at 9:35 PM, in message
<20080309023515.GC15909@xxxxxxxxxxxxxxxxxxxxx>, Suresh Siddha
<suresh.b.siddha@xxxxxxxxx> wrote:
> On Sat, Mar 08, 2008 at 12:10:15AM -0500, Gregory Haskins wrote:
>> Suresh Siddha wrote:
>> >
>> > - cpus_and(*lowest_mask, task_rq(task)->rd->online, task->cpus_allowed);
>> > + cpus_and(*lowest_mask, task->cpus_allowed, cpu_online_map);
>>
>> Hi Suresh,
>> Unfortunately, this patch will introduce its own set of bugs.
>
> Is that because of the missing get/put_online_cpus() ?

Actually, I was referring to the problem of potentially including "out of domain" CPUs in the search, but that is a good point too. Ill have to think about whether a get/put is needed here.


>
>> However, your analysis was spot-on. I think I see the problem now. It
>> was introduced when I put a hack in to "fix" s2ram problems in -mm as a
>> result of the new root-domain logic. I think the following patch will
>> fix both issues:
>
> BTW, what is use of per root domains online map, when we have global
> cpu_online_map() ? Each domains span & cpu_online_map should give
> domain_online_map anyhow.


Thats exactly right. rd->online is a cached version of "rd->span & cpu_online_map". It simply saves us from having to do an extra cpu_and() at run-time (which can be expensive as the NR_CPUS grows large).

>
> And is n't it buggy if someone accesses rd->online with out
> get/put_online_map()

See above: I'm not sure, but you may be right about that.

Regards,
-Greg

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/