Re: PROBLEM: Off-by-one bug on sun4u SMP

From: David Miller
Date: Thu Jun 10 2010 - 20:37:13 EST


From: Ryan Davis <iconoclasmandheresy@xxxxxxxxx>
Date: Thu, 10 Jun 2010 11:05:09 -0700

> On at least some sun4u machines, the CPU numbering starts at one not 0.
> This causes an off-by-one bug as other parts of the code assume
> zero-based numbering.
>
> If you set max-cpus in the kernel config to the actual number of CPUs,
> the last CPU will be ignored and unused.
> This is because the CPU numbering starts at 1 but the code to check
> against max-cpus assumes a zero-based numbering.
>
> On my computer: Sun Ultra 60 2x450mhz Ultrasparc.
> Building with max-cpus of 2 ignores the second cpu because 2 (one
> based cpu number) >= 2 (zero based max cpus)
> Rebuilding with a larger max-cpus is a workaround but non optimal.

max-cpus means "one larger than the maximum PHYSICAL cpu number", not
the number of cpus. That's what this setting means, at least on
sparc64.
--
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/