Source-Changes-HG archive

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

[src/netbsd-2-0]: src/sys/arch/sparc64/sparc64 Pull up revision 1.157 (reques...



details:   https://anonhg.NetBSD.org/src/rev/11e2d6bac60d
branches:  netbsd-2-0
changeset: 564648:11e2d6bac60d
user:      jdc <jdc%NetBSD.org@localhost>
date:      Fri Jan 07 14:21:57 2005 +0000

description:
Pull up revision 1.157 (requested by martin in ticket #1013).

do the invalidation of the (virtually-addressed) L1 cache in pmap_remove_all()
(ie. just before we skip the per-page cache invalidations while tearing down
each context) instead of just before we recycle all the contexts in ctx_alloc().
the latter is not good enough since a (physically tagged) L1 cache line is
valid for all contexts, not just the one that was used to instantiate it.
fixes PRs 24126, 25669 and 27730.

diffstat:

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

diffs (34 lines):

diff -r 78ef76cb7e4f -r 11e2d6bac60d sys/arch/sparc64/sparc64/pmap.c
--- a/sys/arch/sparc64/sparc64/pmap.c   Fri Jan 07 12:51:20 2005 +0000
+++ b/sys/arch/sparc64/sparc64/pmap.c   Fri Jan 07 14:21:57 2005 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.156 2004/03/21 14:19:30 pk Exp $    */
+/*     $NetBSD: pmap.c,v 1.156.2.1 2005/01/07 14:21:57 jdc Exp $       */
 /*
  *
  * Copyright (C) 1996-1999 Eduardo Horvath.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.156 2004/03/21 14:19:30 pk Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.156.2.1 2005/01/07 14:21:57 jdc Exp $");
 
 #undef NO_VCACHE /* Don't forget the locked TLB in dostart */
 #define        HWREF
@@ -2077,6 +2077,7 @@
        stxa(CTX_SECONDARY, ASI_DMMU, 0);
        pm->pm_refs = 0;
        ctx_free(pm);
+       blast_dcache();
 }
 
 /*
@@ -3136,7 +3137,6 @@
                        }
                }
                tlb_flush_all();
-               blast_dcache();
                ctx = 1;
                pmap_next_ctx = 2;
        }



Home | Main Index | Thread Index | Old Index