Source-Changes-HG archive

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

[src/trunk]: src/sys/uvm/pmap Don't track kenter_pa/kremove PVs unless we are...



details:   https://anonhg.NetBSD.org/src/rev/1c2e53557e7e
branches:  trunk
changeset: 347234:1c2e53557e7e
user:      matt <matt%NetBSD.org@localhost>
date:      Thu Aug 18 21:42:27 2016 +0000

description:
Don't track kenter_pa/kremove PVs unless we are worrying about cache aliasing.

diffstat:

 sys/uvm/pmap/pmap.c |  11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diffs (41 lines):

diff -r 65f220fb2ce2 -r 1c2e53557e7e sys/uvm/pmap/pmap.c
--- a/sys/uvm/pmap/pmap.c       Thu Aug 18 19:27:33 2016 +0000
+++ b/sys/uvm/pmap/pmap.c       Thu Aug 18 21:42:27 2016 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.19 2016/08/05 20:54:28 jakllsch Exp $       */
+/*     $NetBSD: pmap.c,v 1.20 2016/08/18 21:42:27 matt Exp $   */
 
 /*-
  * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.19 2016/08/05 20:54:28 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.20 2016/08/18 21:42:27 matt Exp $");
 
 /*
  *     Manages physical address maps.
@@ -1358,7 +1358,8 @@
         * No need to track non-managed pages or PMAP_KMPAGEs pages for aliases
         */
 #ifdef PMAP_VIRTUAL_CACHE_ALIASES
-       if (pg != NULL && (flags & PMAP_KMPAGE) == 0) {
+       if (pg != NULL && (flags & PMAP_KMPAGE) == 0
+           && pmap_md_virtual_cache_aliasing_p()) {
                pmap_enter_pv(pmap, va, pg, &npte, PV_KENTER);
        }
 #endif
@@ -1411,9 +1412,11 @@
 
                PMAP_COUNT(kremove_pages);
                struct vm_page * const pg = PHYS_TO_VM_PAGE(pte_to_paddr(pte));
-               if (pg != NULL) {
+#ifdef PMAP_VIRTUAL_CACHE_ALIASES
+               if (pg != NULL && pmap_md_virtual_cache_aliasing_p()) {
                        pmap_remove_pv(pmap, sva, pg, !pte_readonly_p(pte));
                }
+#endif
 
                pmap_md_tlb_miss_lock_enter();
                *ptep = new_pte;



Home | Main Index | Thread Index | Old Index