Skip site navigation (1)Skip section navigation (2)
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>