git: kernel - Correct second edge-case for machdep.pmap_mmu_optimize

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Mar 13 09:28:21 PDT 2014


commit e3e69557a4979cb4d54d2361cc8a158eff082611
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Mar 13 09:25:29 2014 -0700

    kernel - Correct second edge-case for machdep.pmap_mmu_optimize
    
    * The pmap_release*() code was previously optimized to not invalidate
      on pml4, pdp, pd, or pt pte's, only on terminal ptes.  This invalidation
      interferes with the PT replacement that the pmap_mmu_optimize feature
      uses.
    
    * The bug generally would only occur when memory is mmap()'d and munmap()'d
      multiple times, which something like postgres will not do, but which
      rtorrent and other programs will do.
    
    * Correctly invalidate page tables (use invltlb) when PT pte's are replaced.
    
    * Requires further testing.  Default for this feature is still off.

Summary of changes:
 sys/platform/pc64/x86_64/pmap.c | 71 +++++++++++++++++++++++++++++++----------
 1 file changed, 55 insertions(+), 16 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e3e69557a4979cb4d54d2361cc8a158eff082611


-- 
DragonFly BSD source repository


More information about the Commits mailing list