On 08/25/05 06:00, Felix Schulte wrote:
On 8/24/05, Eric Schrock <[EMAIL PROTECTED]> wrote:
On Wed, Aug 24, 2005 at 10:47:31PM +0200, Felix Schulte wrote:
Why is Solaris x86 limited to 21 CPUs
(http://cvs.opensolaris.org/source/xref/usr/src/uts/i86pc/sys/machparam.h#51)?
Is there simply no hardware with more than 20 CPUs or are there other
limits in the kernel which cause this limitation (SPARC uses 64+576)?
This is largely historical.  There is a bug:

5081104 NCPU has been outgrown on x86
The problem is even far older -
http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=4238977 has
been filed in 1999 (six years ago).

NCPU=64 for i386 would be nice to be in sync with SPARC.

The change isn't trivial from a code or performance point of view.
If you look at the sparc stuff you'll see that NCPU has a default but
that can be overridden by specific platforms (that have more than
the default, which I think is 32).  We calculate the number of
words required to represent the final NCPU value in a bitmask
(ala cpuset_t) and define macros accordingly.  Where we can fit
in a single word the macros are trivial bit operations, but
where we span several words (currently 9 for bigger sparc platforms,
I think) we have to shuffle around words first.  cpuset_t is used
all over the show, so keeping it simple on platforms that do not
need more than a single word is desirable.

Having said that, since most code is common and sparc already uses
the single/multiple cpuset word setup, it should not be too much more
work to get it working for x86.

Cheers

Gavin
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to