From owner-freebsd-arch@FreeBSD.ORG Sun Jun 21 14:03:15 2009 Return-Path: Delivered-To: arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14D9E106566C; Sun, 21 Jun 2009 14:03:15 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) by mx1.freebsd.org (Postfix) with ESMTP id 9953C8FC15; Sun, 21 Jun 2009 14:03:14 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.3/8.14.3/ALCHEMY.FRANKEN.DE) with ESMTP id n5LE3CHu098004; Sun, 21 Jun 2009 16:03:12 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.3/8.14.3/Submit) id n5LE3CTL098003; Sun, 21 Jun 2009 16:03:12 +0200 (CEST) (envelope-from marius) Date: Sun, 21 Jun 2009 16:03:12 +0200 From: Marius Strobl To: Jeff Roberson Message-ID: <20090621140312.GC71667@alchemy.franken.de> References: <20090609201127.GA50903@alchemy.franken.de> <4A2F1148.9090706@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i Cc: arch@freebsd.org, Peter Grehan Subject: Re: Dynamic pcpu, arm, mips, powerpc, sun, etc. help needed X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Jun 2009 14:03:15 -0000 On Wed, Jun 17, 2009 at 12:55:52PM -1000, Jeff Roberson wrote: > > On Tue, 9 Jun 2009, Peter Grehan wrote: > > >>As for sparc64 allocating the storage for the dynamic area > >>from end probably isn't a good idea as the pmap code assumes > >>that the range from KERNBASE to end is covered by the pages > >>allocated by and locked into the TLB for the kernel by the > >>loader > > > >Ditto for ppc. It's possible to get the additional space from within or > >after return from pmap_bootstrap() (like thread0's kstack, or the msgbuf). > > http://people.freebsd.org/~jeff/dpcpu.diff > > I have updated this patch based on feedback relating to various > architectures md code. I tried to model most architectures after the way > msgbuf memory was taken. I have no capacity to test anything other than > i386 and amd64. ARM is reported to work with one minor diff. Apparently > sparc64 worked with the earlier diff but this should be cleaner. If > anyone can report back on sparc64, mips, or powerpc, I'd appreciate it. > The earlier patch worked on sparc64 as long as the kernel happened to leave enough room in the last 4MB page allocated for it. The new version unfortunately doesn't compile on sparc64 as pmap_bootstrap_alloc() is static to its pmap.c (I think it should also stay that way). Also the memory allocated with it isn't safe to be used before we've taken over the trap table. A kernel built with the sparc64 bits replaced with the following patch boots fine: http://people.freebsd.org/~marius/sparc64_dpcpu.diff Do you have some simple test case for DPCPU which can be used to verify that it actually works? Marius