git: DragonFly_RELEASE_3_0 kernel - Fix incorrect dirty/reprotect code in pageout
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Aug 20 21:04:42 PDT 2012
commit 4d289d94806fbaf2b1d0d81acf036409bdd0e735
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Thu Aug 16 11:42:25 2012 -0700
kernel - Fix incorrect dirty/reprotect code in pageout
* vm_object_page_collect_flush() was trying to re-protect VM pages that
were still marked dirty after pageout I/O was initiated without owning
the BUSY bit on the page. This operation could race whatever I/O was
going on and multiple issues. Remove the re-protect.
Just don't do it. It's an unnecessary operation. We still re-set
PG_CLEANCHK on the page and that should be fine insofar as the pageout
daemon goes.
* Note that the pageout_flush code protects the VM pages properly (to
read-only) prior to initiating I/O .
* Should fix bug #2350
* Might be related to the wire-count bug considering that we were messing
with the page's pmap without owning the BUSY bit. Small chance.
Summary of changes:
sys/vm/vm_object.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/4d289d94806fbaf2b1d0d81acf036409bdd0e735
--
DragonFly BSD source repository
More information about the Commits
mailing list