Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/sparc64/sparc64 Mark page table pages as wired rath...



details:   https://anonhg.NetBSD.org/src/rev/6b37c75750b8
branches:  trunk
changeset: 480030:6b37c75750b8
user:      eeh <eeh%NetBSD.org@localhost>
date:      Thu Dec 30 16:31:18 1999 +0000

description:
Mark page table pages as wired rather than busy.

diffstat:

 sys/arch/sparc64/sparc64/pmap.c |  13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diffs (38 lines):

diff -r de7602192cf5 -r 6b37c75750b8 sys/arch/sparc64/sparc64/pmap.c
--- a/sys/arch/sparc64/sparc64/pmap.c   Thu Dec 30 16:27:54 1999 +0000
+++ b/sys/arch/sparc64/sparc64/pmap.c   Thu Dec 30 16:31:18 1999 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.46 1999/11/14 17:25:01 eeh Exp $    */
+/*     $NetBSD: pmap.c,v 1.47 1999/12/30 16:31:18 eeh Exp $    */
 /* #define NO_VCACHE */ /* Don't forget the locked TLB in dostart */
 #define HWREF 1 
 /* #define BOOT_DEBUG */
@@ -3434,7 +3434,12 @@
 vm_page_t
 vm_page_alloc1()
 {
-       return uvm_pagealloc(NULL, 0, NULL, UVM_PGA_USERESERVE);
+       vm_page_t pg = uvm_pagealloc(NULL, 0, NULL, UVM_PGA_USERESERVE);
+       if (pg) {
+               pg->flags &= ~PG_BUSY;  /* never busy */
+               pg->wire_count = 1;     /* no mappings yet */
+       }
+       return pg;
 }
 
 /*
@@ -3449,11 +3454,13 @@
 vm_page_free1(mem)
        register vm_page_t      mem;
 {
-       if (mem->flags != (PG_BUSY|PG_CLEAN|PG_FAKE)) {
+       if (mem->flags != (PG_CLEAN|PG_FAKE)) {
                printf("Freeing invalid page %p\n", mem);
                Debugger();
                return;
        }
+       mem->flags |= PG_BUSY;
+       mem->wire_count = 0;
        uvm_pagefree(mem);
 }
 



Home | Main Index | Thread Index | Old Index