DragonFly commits List (threaded) for 2012-09
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
git: kernel - Implement segment pmap optimizations for x86-64 (6)
commit 9df83100521ca0fada8656eb660477876ab81c58
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date: Fri Sep 14 23:44:10 2012 -0700
kernel - Implement segment pmap optimizations for x86-64 (6)
* Improve process exit. When the last process referencing a shared
anonymous memory VM object exits the kernel destroys the object
and its shared pmap.
Removal of pages from the shared pmap was causing the system to IPI
EVERY cpu for EACH pte. Needless to say this caused a process to take
~2 minutes to remove a ~6GB shared segment. Optimize this case by
not bothering the do the IPI/invlpg invalidations since the pmap is not
actually active.
* This also applies to any exiting process. When cleaning out the pmap
we no longer invlpg each pte, since nobody is referencing the pmap except
the current thread in the kernel doing the exit. It will simply issue
a cpu_invltlb() when it is all done.
Summary of changes:
sys/platform/pc64/x86_64/pmap.c | 74 ++++++++++++++++++++++++++------------
1 files changed, 50 insertions(+), 24 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/9df83100521ca0fada8656eb660477876ab81c58
--
DragonFly BSD source repository
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]