svn commit: r194806 - head/sys/vm

Alan Cox alc at FreeBSD.org
Wed Jun 24 04:45:04 UTC 2009


Author: alc
Date: Wed Jun 24 04:45:03 2009
New Revision: 194806
URL: http://svn.freebsd.org/changeset/base/194806

Log:
  The bits set in a page's dirty mask are a subset of the bits set in its
  valid mask.  Consequently, there is no need to perform a bit-wise and of
  the page's dirty and valid masks in order to determine which parts of a
  page are dirty and valid.
  
  Eliminate an unnecessary #include.

Modified:
  head/sys/vm/vm_object.c
  head/sys/vm/vm_pageout.c

Modified: head/sys/vm/vm_object.c
==============================================================================
--- head/sys/vm/vm_object.c	Wed Jun 24 02:01:16 2009	(r194805)
+++ head/sys/vm/vm_object.c	Wed Jun 24 04:45:03 2009	(r194806)
@@ -787,7 +787,7 @@ vm_object_page_clean(vm_object_t object,
 				continue;
 			}
 			vm_page_test_dirty(p);
-			if ((p->dirty & p->valid) == 0) {
+			if (p->dirty == 0) {
 				if (--scanlimit == 0)
 					break;
 				++tscan;
@@ -874,7 +874,7 @@ again:
 		}
 
 		vm_page_test_dirty(p);
-		if ((p->dirty & p->valid) == 0) {
+		if (p->dirty == 0) {
 			p->oflags &= ~VPO_CLEANCHK;
 			continue;
 		}
@@ -947,7 +947,7 @@ vm_object_page_collect_flush(vm_object_t
 				(tp->busy != 0))
 				break;
 			vm_page_test_dirty(tp);
-			if ((tp->dirty & tp->valid) == 0) {
+			if (tp->dirty == 0) {
 				tp->oflags &= ~VPO_CLEANCHK;
 				break;
 			}
@@ -971,7 +971,7 @@ vm_object_page_collect_flush(vm_object_t
 					(tp->busy != 0))
 					break;
 				vm_page_test_dirty(tp);
-				if ((tp->dirty & tp->valid) == 0) {
+				if (tp->dirty == 0) {
 					tp->oflags &= ~VPO_CLEANCHK;
 					break;
 				}
@@ -999,7 +999,7 @@ vm_object_page_collect_flush(vm_object_t
 
 	vm_pageout_flush(ma, runlen, pagerflags);
 	for (i = 0; i < runlen; i++) {
-		if (ma[i]->valid & ma[i]->dirty) {
+		if (ma[i]->dirty) {
 			pmap_remove_write(ma[i]);
 			ma[i]->oflags |= VPO_CLEANCHK;
 
@@ -1946,7 +1946,7 @@ again:
 		    ("vm_object_page_remove: page %p is fictitious", p));
 		if (clean_only && p->valid) {
 			pmap_remove_write(p);
-			if (p->valid & p->dirty)
+			if (p->dirty)
 				continue;
 		}
 		pmap_remove_all(p);

Modified: head/sys/vm/vm_pageout.c
==============================================================================
--- head/sys/vm/vm_pageout.c	Wed Jun 24 02:01:16 2009	(r194805)
+++ head/sys/vm/vm_pageout.c	Wed Jun 24 04:45:03 2009	(r194806)
@@ -105,8 +105,6 @@ __FBSDID("$FreeBSD$");
 #include <vm/vm_extern.h>
 #include <vm/uma.h>
 
-#include <machine/mutex.h>
-
 /*
  * System initialization
  */
@@ -350,7 +348,7 @@ more:
 			break;
 		}
 		vm_page_test_dirty(p);
-		if ((p->dirty & p->valid) == 0 ||
+		if (p->dirty == 0 ||
 		    p->queue != PQ_INACTIVE ||
 		    p->wire_count != 0 ||	/* may be held by buf cache */
 		    p->hold_count != 0) {	/* may be undergoing I/O */
@@ -378,7 +376,7 @@ more:
 			break;
 		}
 		vm_page_test_dirty(p);
-		if ((p->dirty & p->valid) == 0 ||
+		if (p->dirty == 0 ||
 		    p->queue != PQ_INACTIVE ||
 		    p->wire_count != 0 ||	/* may be held by buf cache */
 		    p->hold_count != 0) {	/* may be undergoing I/O */


More information about the svn-src-all mailing list