cvs commit: src/sys/machine/vkernel/platform pmap.c
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Jan 11 02:26:12 PST 2007
dillon 2007/01/11 02:25:52 PST
DragonFly src repository
Modified files:
sys/machine/vkernel/platform pmap.c
Log:
When removing a page directory, tell the real kernel to invalidate the
related segment. This may not be necessary and can be removed later after
testing.
The virtual kernel's pmap_track_modified() is dealing with independant
address spaces, don't return false hits on non-kernel pmaps.
When clearing the Modify bit, also clear the write bit to force a fault.
We have no other means of detecting when a page is modified. Note that
this may not be necessary in the vkernel implementation once the real
kernel implementation is fixed to properly set the Modify bit (by doing the
same thing).
Invalidate the real kernel's pmap when clearing either the Write bit or
the Modify bit, instead of just the write bit, and clear both bits when
clearing either, again in order to force a page fault to detect page
modifications.
Code cleanup - remove degenerate cases. e.g. pmap_changebit() was only
ever used to clear bits, rip out the set/clear functionality and just
make it pmap_clearbit().
Revision Changes Path
1.11 +80 -45 src/sys/machine/vkernel/platform/pmap.c
http://www.dragonflybsd.org/cvsweb/src/sys/machine/vkernel/platform/pmap.c.diff?r1=1.10&r2=1.11&f=u
More information about the Commits
mailing list