On 8/25/05, Gavin Maltby <[EMAIL PROTECTED]> wrote: > 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). Its 64 for SPARC.
> 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. Depends on how you define 'word' - nibble, byte, short, 32 bit, 64 bit or 128 bit. 586 has 64bit datatypes, making the value 64 the optimum for the near future (until machines with 16 sockets and quad-core cpus or 8 sockets with two HT-capable dual cores become available). -- _ Felix Schulte _|_|_ mailto:[EMAIL PROTECTED] (0 0) ooO--(_)--Ooo _______________________________________________ opensolaris-discuss mailing list opensolaris-discuss@opensolaris.org