git: kernel - Fix resident_count problems with kernel_pmap & related crashes

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Apr 29 19:53:19 PDT 2010


commit 45758e38420d8432ef186f03c126262d4becd1af
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Apr 29 19:48:58 2010 -0700

    kernel - Fix resident_count problems with kernel_pmap & related crashes
    
    * kernel_pmap.pm_stats.resident_count could get out of sync due to the
      lwbuf code calling kmem_free() on KVM with pages that were entered
      via pmap_kenter().  Delete the pages before calling kmem_free().
    
      This in turn caused various failures and kernel panics due to conditionals
      based on resident_count == 0.  Heavy sendfile() activity could trigger
      the bug but it was taking a few days for the resident_count to decrement
      to zero.
    
    * Fix a similar issue in zdestroy() on ZONE_INTERRUPT zones.  Nothing calls
      this routine so it was not a vector for crashes.
    
    * Document the case.

Summary of changes:
 sys/cpu/i386/misc/lwbuf.c |    7 +++++++
 sys/vm/vm_kern.c          |    5 +++++
 sys/vm/vm_zone.c          |    8 ++++++++
 3 files changed, 20 insertions(+), 0 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/45758e38420d8432ef186f03c126262d4becd1af


-- 
DragonFly BSD source repository





More information about the Commits mailing list