Date: Thu, 04 Oct 2007 12:01:45 -0500 From: Alan Cox <alc@cs.rice.edu> To: marius@FreeBSD.org Cc: alc@FreeBSD.org, freebsd-sparc64@FreeBSD.org Subject: Re: sparc64/116794: 7.0-current Sparc64 crash during creation of large file Message-ID: <47051C79.30206@cs.rice.edu> In-Reply-To: <200710031928.l93JS9Y5077556@freefall.freebsd.org> References: <200710031928.l93JS9Y5077556@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47051C79.30206>