cvs commit: src/sys/alpha/alpha mp_machdep.c
Jeff Roberson
jroberson at chesapeake.net
Mon Dec 1 16:00:05 PST 2003
On Mon, 1 Dec 2003, John Baldwin wrote:
>
> On 01-Dec-2003 Jeff Roberson wrote:
> >
> > On Mon, 1 Dec 2003, John Baldwin wrote:
> >
> >>
> >> 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.
> >
> > Well, since ULE and UMA are the only two subsystems which make use of
> > mp_maxid, can I request that it be one over the maximum id so that I can
> > use it in loops like:
> > for (i = 0; i < mp_maxid; i++) {
> >
> > Otherwise I guess I can do <=. If you fix x86, can you fix alpha and
> > amd64, and uma and ule? :-)
>
> I'll fix all of them and work up a patch tomorrow, sure. :)
Thanks, I implemented the HTT topology stuff. You can remove that from
your list.
Cheers,
Jeff
>
> --
>
> 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