From owner-freebsd-sparc64@FreeBSD.ORG Mon Nov 5 00:33:09 2007 Return-Path: Delivered-To: freebsd-sparc64@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6024116A46E; Mon, 5 Nov 2007 00:33:09 +0000 (UTC) (envelope-from alc@cs.rice.edu) Received: from mail.cs.rice.edu (mail.cs.rice.edu [128.42.1.31]) by mx1.freebsd.org (Postfix) with ESMTP id 2FB9B13C4AC; Mon, 5 Nov 2007 00:33:09 +0000 (UTC) (envelope-from alc@cs.rice.edu) Received: from mail.cs.rice.edu (localhost.localdomain [127.0.0.1]) by mail.cs.rice.edu (Postfix) with ESMTP id 063F62C2B28; Sun, 4 Nov 2007 18:02:01 -0600 (CST) X-Virus-Scanned: by amavis-2.4.0 at mail.cs.rice.edu Received: from mail.cs.rice.edu ([127.0.0.1]) by mail.cs.rice.edu (mail.cs.rice.edu [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 2aHZv1z0GoNX; Sun, 4 Nov 2007 18:01:53 -0600 (CST) Received: from [216.63.78.18] (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.cs.rice.edu (Postfix) with ESMTP id 2DD9B2C2ADF; Sun, 4 Nov 2007 18:01:53 -0600 (CST) Message-ID: <472E5D70.3020009@cs.rice.edu> Date: Sun, 04 Nov 2007 18:01:52 -0600 From: Alan Cox User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.13) Gecko/20070805 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Kris Kennaway References: <46FEADFD.8020105@FreeBSD.org> <20071003132944.GA17342@alchemy.franken.de> <200710060222.31023.jhb@freebsd.org> <20071006132620.GF24840@alchemy.franken.de> <472DFC18.3080000@FreeBSD.org> <472E4573.3090708@FreeBSD.org> <20071104224618.GD36824@alchemy.franken.de> <472E54D0.8070807@FreeBSD.org> In-Reply-To: <472E54D0.8070807@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: alc@FreeBSD.org, freebsd-sparc64@FreeBSD.org, John Baldwin , Marius Strobl Subject: Re: 7.0 broken on e4500 X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Nov 2007 00:33:09 -0000 Kris Kennaway wrote: > Marius Strobl wrote: > >> On Sun, Nov 04, 2007 at 11:19:31PM +0100, Kris Kennaway wrote: >> >>> >>>> >>> Another runtime panic from a u60: >>> >>> panic() at panic+0x204 >>> _mtx_assert() at _mtx_assert+0xac >>> pmap_page_is_mapped() at pmap_page_is_mapped+0x38 >>> vm_page_free_toq() at vm_page_free_toq+0x4c >>> vm_page_free() at vm_page_free+0x10 >>> uma_small_free() at uma_small_free+0x1c >>> zone_drain() at zone_drain+0x2d0 >>> zone_foreach() at zone_foreach+0x6c >>> uma_reclaim() at uma_reclaim+0x20 >>> vm_pageout() at vm_pageout+0x9b8 >>> fork_exit() at fork_exit+0x9c >>> fork_trampoline() at fork_trampoline+0x8 >>> >> >> Have you asked alc@ about these? >> >> Marius >> >> > > I have now :) > Let's deal with the latter case first. This case was supposed to be fixed by this change: alc 2007-10-07 18:03:04 UTC FreeBSD src repository Modified files: sys/sparc64/sparc64 pmap.c sys/vm vm_page.c Log: Correct a lock assertion failure in sparc64's pmap_page_is_mapped() that is a consequence of sparc64/sparc64/vm_machdep.c revision 1.76. It occurs when uma_small_free() frees a page. The solution has two parts: (1) Mark pages allocated with VM_ALLOC_NOOBJ as PG_UNMANAGED. (2) Defer the lock assertion in pmap_page_is_mapped() until after PG_UNMANAGED is tested. This is safe because both PG_UNMANAGED and PG_FICTITIOUS are immutable flags, i.e., they do not change state between the time that a page is allocated and freed. Approved by: re (kensmith) PR: 116794 Revision Changes Path 1.166 +1 -1 src/sys/sparc64/sparc64/pmap.c 1.356 +1 -1 src/sys/vm/vm_page.c Do you have this change? Alan