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