Author: alc
Date: Sun Aug  5 16:59:02 2012
New Revision: 239072
URL: http://svn.freebsd.org/changeset/base/239072

Log:
  Shave off a few more cycles from the average execution time of pmap_enter()
  by simplifying the control flow and reducing the live range of "om".

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

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c Sun Aug  5 15:55:36 2012        (r239071)
+++ head/sys/amd64/amd64/pmap.c Sun Aug  5 16:59:02 2012        (r239072)
@@ -3468,7 +3468,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va, 
                newpte |= PG_G;
        newpte |= pmap_cache_bits(m->md.pat_mode, 0);
 
-       mpte = om = NULL;
+       mpte = NULL;
 
        lock = NULL;
        rw_rlock(&pvh_global_lock);
@@ -3540,12 +3540,6 @@ retry:
                        if (((origpte ^ newpte) & ~(PG_M | PG_A)) == 0)
                                goto unchanged;
                        goto validate;
-               } else {
-                       /*
-                        * Yes, fall through to validate the new mapping.
-                        */
-                       if ((origpte & PG_MANAGED) != 0)
-                               om = PHYS_TO_VM_PAGE(opa);
                }
        } else {
                /*
@@ -3578,6 +3572,7 @@ validate:
                opa = origpte & PG_FRAME;
                if (opa != pa) {
                        if ((origpte & PG_MANAGED) != 0) {
+                               om = PHYS_TO_VM_PAGE(opa);
                                if ((origpte & (PG_M | PG_RW)) == (PG_M |
                                    PG_RW))
                                        vm_page_dirty(om);
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to