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