From owner-freebsd-current@FreeBSD.ORG Thu Jul 10 15:04:02 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D693637B401 for ; Thu, 10 Jul 2003 15:04:02 -0700 (PDT) Received: from rwcrmhc11.comcast.net (rwcrmhc11.comcast.net [204.127.198.35]) by mx1.FreeBSD.org (Postfix) with ESMTP id 41FFB43FD7 for ; Thu, 10 Jul 2003 15:04:02 -0700 (PDT) (envelope-from julian@elischer.org) Received: from interjet.elischer.org ([12.233.125.100]) by attbi.com (rwcrmhc11) with ESMTP id <2003071022035601300njrcbe>; Thu, 10 Jul 2003 22:03:56 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id PAA42617; Thu, 10 Jul 2003 15:03:43 -0700 (PDT) Date: Thu, 10 Jul 2003 15:03:41 -0700 (PDT) From: Julian Elischer To: Marcel Moolenaar In-Reply-To: <20030710214339.GA48547@ns1.xcllnt.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: FreeBSD current users Subject: Re: small scheduler hack/patch X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 22:04:03 -0000 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@xcllnt.net >