Re: Are we properly prepared to handle 3 Socket setups?

Rene Herman
2007-08-12T03:20:52Z

On 08/12/2007 03:52 AM, Jesper Juhl wrote:

> On 12/08/07, Rene Herman <rene.herman@gmail.com> wrote:
>> On 08/12/2007 03:08 AM, Jesper Juhl wrote:
>>
>>> This may be a little off topic, but I think it's interresting enough
>>> to warrent a single mail.
>>>
>>> I just saw a news article (http://www.theinquirer.net/?article=41610)
>>> about a 3 Socket Opteron motherboard and couldn't help but wonder if
>>> we are prepared to deal with such a beast, so I thought I'd inform
>>> everyone :-)
>>>
>>> I'm guessing equipping such a board with 3 single core CPU's could
>>> show up some interresting corner cases in schedular code and
>>> elsewhere, I'll bet we have some assumptions somewhere about
>>> nr_of_cpus being an even number...
>> I would hope the N=1 case will have flushed out enough of those... :-|
>>
> Hehe, true, but I was thinking more of nr_of_cpus is an odd number > 1. :-)
> Just thinking of having to divide things by 3 makes me worry ;-) ...

It's not a hugely strange worry no. Grepping around (for num_online_cpus for
example) didn't throw up any glaring bugs I believe.

A possible problem in mm/vmstat.c:calculate_threshold() where 3 CPUs would
be treated as 2 through an fls(). No idea about that code and if that would
be a problem.

The line just below where it does that _does_ seem to have a problem:

/*
* Maximum threshold is 125
*/
threshold = min(125, threshold);

as either the comment or the code is wrong and it seems it's the code. Added
Andrew Morton to the CC for that.

CFS (v19.1) has an ilog2 on num_online_cpus() in
kernel/sched.c:sched_init_granularity() but this seems not a problem. Added
Ingo Molnar.

Rene.