Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Mar 2002 12:05:45 -0500 (EST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Michael Smith <msmith@freebsd.org>
Cc:        cvs-all@FreeBSD.org, cvs-committers@FreeBSD.org, Jeff Roberson <jeff@FreeBSD.org>, Doug Rabson <dfr@nlsystems.com>, Jeff Roberson <jroberson@chesapeake.net>
Subject:   Re: cvs commit: src/sys/sys smp.h src/sys/kern subr_smp.c src/sy
Message-ID:  <XFMail.020311120545.jhb@FreeBSD.org>
In-Reply-To: <200203102058.g2AKvum00955@mass.dis.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On 10-Mar-02 Michael Smith wrote:
>> > This screws up the SMP probe for ia64 because the information which
>> > cpu_mp_probe() uses isn't available until after cpu_startup() is called
>> > (i.e. SI_SUB_CPU:SI_ORDER_FIRST). The code in the ia64 platform which
>> > detects SMP can't (currently) run before the VM system is started...
>> 
>> Is it possible to do it at all before the VM starts up?  This really
>> throws a wrench in my uma plans.  Can you even tell how many cpus you have
>> before then?  If you can do this, and force your cpu ids to be virtual and
>> non sparse, then you can set mp_maxid to the number of cpus.
> 
> The CPU ID array should be "reasonably dense".
> 
> On systems where the CPU ID space is sparse, a "dense to sparse" 
> translation can be performed relatively cheaply.
> 
> You're causing massive (bad) upheaval in the system for the sake of 
> supporting a poor design choice.  Instead, just shift the CPU ID paradigm 
> back to where it was.
> 
> In many cases (IA64 is one of them), CPUs other than the boot processor 
> may be detected and started up at any time.  You want a constant that 
> allows the maximum number of CPUs supported by the platform, rather than 
> to detect the number of CPUs currently on the platform; just pick a sane 
> upper bound (eg. 8) and work with it for now.

MAXCPU does this.  I agree that I would like to depend on this and
CPU_ABSENT() rather than on cpu_maxid.  Even when using cpu_maxid,
you still need to use CPU_ABSENT to account for sparseness.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.020311120545.jhb>