On Fri, 14 Dec 2001 16:31:10 -0800,
Russ Weight <rweight@...> wrote:
> I have tabulated lists of static and global arrays in the
>2.4.16 kernel. I am posting the information here in case it may be
>of interest to some of you. I would recommend starting with the
>linux/kernel and linux/fs tables, as these are the most complete.
Stating the obvious: For any array with dimension  or , check
if the source code uses [NR_CPUS]. IMHO there is no point in trying to
make those arrays dynamic in size, you penalize the 99% of small
machines on the off chance that somebody is going to run single system
image Linux on a box with > 32/64 processors. People using such large
machines can recompile the kernel with a new value of NR_CPUS.
As a separate problem, there are still places in the kernel which
assume the number of cpus can be represented in a bitmap of type long.
That code would be worth tracking down and changing to remove the
assumption that NR_CPUS <= 8*sizeof(long). Until that is done, you
cannot run SSI Linux on machines with > 32/64 processors.
Note to self: after the bitmap code limit has been removed, make
NR_CPUS a config option to get ready for huge machines, make
CONFIG_NR_CPUS a critical config option.