> The number of CPUs is currently globally limited to 32 by NR_CPUS in
> include/linux/threads.h.
>
> Really?
>
> <pause>
A define which can easily be changed.
> Ah, so it is... yes, making this architecture dependant might be a
> good idea. Large PPC and MIPS boxen need to adjust this already. Also,
> someone did a starfire port, I think that had 64 processors, not sure.
The next limit are bitfields for processors in a number of places. They're
stored in unsigned long variables, so this limits the kernel to 32
processors on 32-bit machines and 64 on 64-bit machines. Kanoj once
fixed that and we had Linux booting on a 128p Origin but I'm not sure
if those fixes went back to Linus. Once this is fixed there is a number
of arrays with NR_CPUS elements in struct task_struct. Once you reach
an estimated number of 200-300 processors (for 16kb kernel stacks) those
make task_struct that large that the kernel stack may overflow. I
haven't really researched all the gotchas that may cause problems with
the kernel when going to machines of more than 128 processors.
Ralf
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/