cvs commit: src/sys/alpha/alpha mp_machdep.c
John Baldwin
jhb at FreeBSD.org
Mon Dec 1 14:32:22 PST 2003
On 01-Dec-2003 Jeff Roberson wrote:
> On Mon, 1 Dec 2003, John Baldwin wrote:
>
>>
>> On 30-Nov-2003 Jeff Roberson wrote:
>> > jeff 2003/11/30 14:08:24 PST
>> >
>> > FreeBSD src repository
>> >
>> > Modified files:
>> > sys/alpha/alpha mp_machdep.c
>> > Log:
>> > - Set mp_maxid in a way that is consistent with every other arch. It is
>> > one more than the last valid 'cpuid'.
>> >
>> > Approved by: re (rwatson)
>>
>> Eh? No it's not. All that needs to be true is that for every processor,
>> PCPU_GET(cpuid) <= mp_maxid.
>>
>> It can be equal to the highest ID and should be so for most cases.
>
> From x86's mp_machdep:
> mp_maxid = MAXCPU;
That's a bug.
> ia64
> mp_maxid = min(mp_ncpus, MAXCPU) - 1;
This is correct. Note - 1.
> sparc64
> cpus = 0;
> root = OF_peer(0);
> for (child = OF_child(root); child != 0; child = OF_peer(child)) {
> if (OF_getprop(child, "device_type", buf, sizeof(buf)) > 0
> &&
> strcmp(buf, "cpu") == 0)
> cpus++;
> }
> mp_maxid = cpus;
This should be cpus - 1.
> And I just changed amd64 and alpha to mean maxid + 1. Damn. it looks like
> just sparc64 and x86 were wrong. Maybe I should change those to mean the
> right thing, and backout the changes to uma. yack.
Heh. I am already waiting for approval from re@ to fix x86. That was
definitely my bug.
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
More information about the cvs-src
mailing list