Author: kib
Date: Sat Dec  5 08:46:41 2015
New Revision: 291850
URL: https://svnweb.freebsd.org/changeset/base/291850

Log:
  In the pmap_set_pg() function, which enables the global bit on the
  ptes mapping the kernel on CPUs where global TLB entries are
  supported, revert to flushing only non-global entries, i.e. to the
  pre-r291688 state.  There is no need to flush global TLB entries,
  since only global entries created during the previous iterations of
  the loop could exist at this moment.
  
  Submitted by: alc
  Differential revision:        https://reviews.freebsd.org/D4368

Modified:
  head/sys/i386/i386/pmap.c

Modified: head/sys/i386/i386/pmap.c
==============================================================================
--- head/sys/i386/i386/pmap.c   Sat Dec  5 08:34:51 2015        (r291849)
+++ head/sys/i386/i386/pmap.c   Sat Dec  5 08:46:41 2015        (r291850)
@@ -655,7 +655,7 @@ pmap_set_pg(void)
                va = KERNBASE + KERNLOAD;
                while (va  < endva) {
                        pdir_pde(PTD, va) |= pgeflag;
-                       invltlb_glob(); /* Play it safe, invltlb() every time */
+                       invltlb();      /* Flush non-PG_G entries. */
                        va += NBPDR;
                }
        } else {
@@ -664,7 +664,7 @@ pmap_set_pg(void)
                        pte = vtopte(va);
                        if (*pte)
                                *pte |= pgeflag;
-                       invltlb_glob(); /* Play it safe, invltlb() every time */
+                       invltlb();      /* Flush non-PG_G entries. */
                        va += PAGE_SIZE;
                }
        }
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to