git: kernel - Adjust tlb invalidation in the x86-64 pmap code
Matthew Dillon
dillon at crater.dragonflybsd.org
Fri Nov 18 08:17:06 PST 2011
commit 52bb73bc908f2d4fb004ad3c5c97f4d25402d2c2
Author: Matthew Dillon <dillon at 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
More information about the Commits
mailing list