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);