small scheduler hack/patch
Julian Elischer
julian at elischer.org
Thu Jul 10 15:04:03 PDT 2003
On Thu, 10 Jul 2003, Marcel Moolenaar wrote:
> On Fri, Jul 11, 2003 at 07:21:16AM +1000, Bruce Evans wrote:
> > have MD definitions. Its first arg has type u_int64_t on ia64's and
> > u_int on other arches. This is bogus for ia64's since subr_smp.c uses
> > u_int for all bitmaps of CPUs, so systems with more than 32 CPUs cannot
> > actually work.
>
> The bogosity is in MI code. Not being able to support 64-way (or higher)
> XYZ machines because MI code uses 32-bit bitmaps is wrong. Both the type
> and the access to it should be abstracted in MI code to allow for
> compound types. Much akin to sigset_t.
I think that the fact that it is even a bitmap should be hidden
it comes I think from the fact that some hardware treats things as
bitmaps. (?)
there are lots of cases where the code is doing
foreach cpu
if (cpu->mask & our_mask)
continue; /* skip ourself */
which could easly be
if (cpu->number == PCPU_GET(cpu_number))
i.e there are a lot of cases where a mask is not the natural
way to express the information being used..
abstracting it to
cpu_is_us(pcpu)
makes it more readable and more MI
>
> --
> Marcel Moolenaar USPA: A-39004 marcel at xcllnt.net
>
More information about the freebsd-current
mailing list