DragonFly BSD
DragonFly commits List (threaded) for 2011-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Adjust tlb invalidation in the x86-64 pmap code


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 18 Nov 2011 08:15:48 -0800 (PST)

commit 52bb73bc908f2d4fb004ad3c5c97f4d25402d2c2
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Fri Nov 18 08:10:41 2011 -0800

    kernel - Adjust tlb invalidation in the x86-64 pmap code
    
    * Use a locked bus cycle instruction to clear pte's in all cases.
    
    * Remove unnecessary vm_page_hold() when removing a page table page pv.
      The page is still wired so a hold is not needed.
    
    * Do not issue invalidation interlocks when populating a user pte, the
      invalidations issued when the user pte is removed are sufficient.
    
      Kernel pte's still appear to need an interlock.  It is unclear why
      (possibly early PG_PS replacement issues).
    
    * Revamp pmap_enter() to fix a race case which could allow PG_M to get
      lost.  Any protection or wiring change fully removes the pte before
      loading a revised pte.

Summary of changes:
 sys/platform/pc64/x86_64/pmap.c |  182 +++++++++++++++++----------------------
 1 files changed, 78 insertions(+), 104 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/52bb73bc908f2d4fb004ad3c5c97f4d25402d2c2


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]