svn commit: r239072 - head/sys/amd64/amd64

Alan Cox alc at FreeBSD.org
Sun Aug 5 16:59:03 UTC 2012


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);


More information about the svn-src-all mailing list