Module Name:    src
Committed By:   matt
Date:           Thu Apr 12 19:38:27 UTC 2012

Modified Files:
        src/sys/uvm [matt-nb5-mips64]: uvm_fault.c uvm_km.c

Log Message:
Apply colormask to get a valid color.


To generate a diff of this commit:
cvs rdiff -u -r1.125.6.1.4.5 -r1.125.6.1.4.6 src/sys/uvm/uvm_fault.c
cvs rdiff -u -r1.101.4.2.4.10 -r1.101.4.2.4.11 src/sys/uvm/uvm_km.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/uvm/uvm_fault.c
diff -u src/sys/uvm/uvm_fault.c:1.125.6.1.4.5 src/sys/uvm/uvm_fault.c:1.125.6.1.4.6
--- src/sys/uvm/uvm_fault.c:1.125.6.1.4.5	Thu Apr 12 01:40:27 2012
+++ src/sys/uvm/uvm_fault.c	Thu Apr 12 19:38:27 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_fault.c,v 1.125.6.1.4.5 2012/04/12 01:40:27 matt Exp $	*/
+/*	$NetBSD: uvm_fault.c,v 1.125.6.1.4.6 2012/04/12 19:38:27 matt Exp $	*/
 
 /*
  *
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.125.6.1.4.5 2012/04/12 01:40:27 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_fault.c,v 1.125.6.1.4.6 2012/04/12 19:38:27 matt Exp $");
 
 #include "opt_uvmhist.h"
 
@@ -369,7 +369,8 @@ uvmfault_anonget(struct uvm_faultinfo *u
 				uvmexp.fltnoram++;
 				UVMHIST_LOG(maphist, "  noram -- UVM_WAIT",0,
 				    0,0,0);
-				if (!uvm_reclaimable(atop(ufi->orig_rvaddr),
+				if (!uvm_reclaimable(
+				    atop(ufi->orig_rvaddr) & uvmexp.colormask,
 				    false)) {
 					return ENOMEM;
 				}
@@ -643,7 +644,8 @@ uvmfault_promote(struct uvm_faultinfo *u
 		uvm_page_unbusy(&uobjpage, 1);
 		uvmfault_unlockall(ufi, amap, uobj, oanon);
 nomem:
-		if (!uvm_reclaimable(atop(ufi->orig_rvaddr), false)) {
+		if (!uvm_reclaimable(
+			    atop(ufi->orig_rvaddr) & uvmexp.colormask, false)) {
 			UVMHIST_LOG(maphist, "out of VM", 0,0,0,0);
 			uvmexp.fltnoanon++;
 			error = ENOMEM;
@@ -1406,7 +1408,8 @@ ReFault:
 		if (anon != oanon)
 			mutex_exit(&anon->an_lock);
 		uvmfault_unlockall(&ufi, amap, uobj, oanon);
-		if (!uvm_reclaimable(atop(ufi.orig_rvaddr), false)) {
+		if (!uvm_reclaimable(
+			    atop(ufi.orig_rvaddr) & uvmexp.colormask, false)) {
 			UVMHIST_LOG(maphist,
 			    "<- failed.  out of VM",0,0,0,0);
 			/* XXX instrumentation */
@@ -1791,7 +1794,8 @@ Case2:
 		pg->flags &= ~(PG_BUSY|PG_FAKE|PG_WANTED);
 		UVM_PAGE_OWN(pg, NULL, NULL);
 		uvmfault_unlockall(&ufi, amap, uobj, anon);
-		if (!uvm_reclaimable(atop(ufi.orig_rvaddr), false)) {
+		if (!uvm_reclaimable(
+			    atop(ufi.orig_rvaddr) & uvmexp.colormask, false)) {
 			UVMHIST_LOG(maphist,
 			    "<- failed.  out of VM",0,0,0,0);
 			/* XXX instrumentation */

Index: src/sys/uvm/uvm_km.c
diff -u src/sys/uvm/uvm_km.c:1.101.4.2.4.10 src/sys/uvm/uvm_km.c:1.101.4.2.4.11
--- src/sys/uvm/uvm_km.c:1.101.4.2.4.10	Thu Apr 12 01:40:27 2012
+++ src/sys/uvm/uvm_km.c	Thu Apr 12 19:38:27 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_km.c,v 1.101.4.2.4.10 2012/04/12 01:40:27 matt Exp $	*/
+/*	$NetBSD: uvm_km.c,v 1.101.4.2.4.11 2012/04/12 19:38:27 matt Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -128,7 +128,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_km.c,v 1.101.4.2.4.10 2012/04/12 01:40:27 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_km.c,v 1.101.4.2.4.11 2012/04/12 19:38:27 matt Exp $");
 
 #include "opt_uvmhist.h"
 
@@ -617,9 +617,10 @@ uvm_km_alloc(struct vm_map *map, vsize_t
 		 */
 
 		if (__predict_false(pg == NULL)) {
-			if ((flags & UVM_KMF_NOWAIT) ||
-			    ((flags & UVM_KMF_CANFAIL)
-			    && !uvm_reclaimable(atop(offset), true))) {
+			if ((flags & UVM_KMF_NOWAIT)
+			    || ((flags & UVM_KMF_CANFAIL)
+			        && !uvm_reclaimable(
+				    atop(offset) & uvmexp.colormask, true))) {
 				/* free everything! */
 				uvm_km_free(map, kva, size,
 				    flags & UVM_KMF_TYPEMASK);

Reply via email to