From owner-freebsd-sparc64@FreeBSD.ORG Thu Oct 4 17:27:21 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 6E32816A41A; Thu, 4 Oct 2007 17:27:21 +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 4251613C465; Thu, 4 Oct 2007 17:27:21 +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 8BD602C2C4A; Thu, 4 Oct 2007 12:01:54 -0500 (CDT) 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 gh8X88uq+5ER; Thu, 4 Oct 2007 12:01:46 -0500 (CDT) Received: from adsl-216-63-78-18.dsl.hstntx.swbell.net (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 B662E2C2CAF; Thu, 4 Oct 2007 12:01:46 -0500 (CDT) Message-ID: <47051C79.30206@cs.rice.edu> Date: Thu, 04 Oct 2007 12:01:45 -0500 From: Alan Cox User-Agent: Thunderbird 2.0.0.6 (X11/20070819) MIME-Version: 1.0 To: marius@FreeBSD.org References: <200710031928.l93JS9Y5077556@freefall.freebsd.org> In-Reply-To: <200710031928.l93JS9Y5077556@freefall.freebsd.org> Content-Type: multipart/mixed; boundary="------------090709040103090106040003" Cc: alc@FreeBSD.org, freebsd-sparc64@FreeBSD.org Subject: Re: sparc64/116794: 7.0-current Sparc64 crash during creation of large file 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: Thu, 04 Oct 2007 17:27:21 -0000 This is a multi-part message in MIME format. --------------090709040103090106040003 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit marius@FreeBSD.org wrote: > Synopsis: 7.0-current Sparc64 crash during creation of large file > > Responsible-Changed-From-To: freebsd-sparc64->alc > Responsible-Changed-By: marius > Responsible-Changed-When: Wed Oct 3 19:24:17 UTC 2007 > Responsible-Changed-Why: > > Assign to alc@, as he worked on the VM during the timeframe in > question. > > http://www.freebsd.org/cgi/query-pr.cgi?pr=116794 > Please let me know if the following patch addresses the problem. Alan --------------090709040103090106040003 Content-Type: text/plain; name="sparc64.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="sparc64.patch" Index: sparc64/sparc64/pmap.c =================================================================== RCS file: /home/ncvs/src/sys/sparc64/sparc64/pmap.c,v retrieving revision 1.165 diff -p -u -r1.165 pmap.c --- sparc64/sparc64/pmap.c 18 Jul 2007 20:46:05 -0000 1.165 +++ sparc64/sparc64/pmap.c 4 Oct 2007 05:32:16 -0000 @@ -1765,9 +1765,9 @@ pmap_page_is_mapped(vm_page_t m) { struct tte *tp; - mtx_assert(&vm_page_queue_mtx, MA_OWNED); if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0) return (FALSE); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); TAILQ_FOREACH(tp, &m->md.tte_list, tte_link) { if ((tp->tte_data & TD_PV) != 0) return (TRUE); Index: vm/vm_page.c =================================================================== RCS file: /home/ncvs/src/sys/vm/vm_page.c,v retrieving revision 1.355 diff -p -u -r1.355 vm_page.c --- vm/vm_page.c 27 Sep 2007 04:21:59 -0000 1.355 +++ vm/vm_page.c 4 Oct 2007 05:34:35 -0000 @@ -1086,7 +1086,7 @@ vm_page_alloc(vm_object_t object, vm_pin if (req & VM_ALLOC_ZERO) flags = PG_ZERO; } - if (object != NULL && object->type == OBJT_PHYS) + if (object == NULL || object->type == OBJT_PHYS) flags |= PG_UNMANAGED; m->flags = flags; if (req & (VM_ALLOC_NOBUSY | VM_ALLOC_NOOBJ)) --------------090709040103090106040003--