Re: Static/Global Arrays

Keith Owens (kaos@ocs.com.au)
Sat, 15 Dec 2001 19:42:10 +1100


On Fri, 14 Dec 2001 16:31:10 -0800,
Russ Weight <rweight@us.ibm.com> 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.
>
> http://lse.sourceforge.net/resource/#staticarray

Stating the obvious: For any array with dimension [32] or [64], 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.

-
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/