bdfafa03cd
it in pmap_create(), and freeing the lev1map in pmap_destroy(). This means that pm_lev1map is consistent for the life of the pmap. 2. pmap_extract() now uses vtophys() for the kernel pmap. This avoids having to lock the kernel pmap, since kernel PT pages are never freed. 3. Because of (1), pmap_asn_alloc() no longer needs to operate on a locked pmap; pm_lev1map will never change over the life of the pmap, and all other access to the pmap is done in per-CPU fields or with atomic operations. 4. Because of (3), pmap_activate() no longer needs to lock the pmap to do its work, thus eliminating the deadlock with sched_lock described in PR port-alpha/25599. This is safe because we are guaranteed that the pmap is still alive, since by definition an LWP that uses that it is about to run. Thanks to Michael Hitch for the analysis, and Michael and Ragge for testing. |
||
---|---|---|
bin | ||
crypto | ||
dist | ||
distrib | ||
doc | ||
etc | ||
games | ||
gnu | ||
include | ||
lib | ||
libexec | ||
regress | ||
rescue | ||
sbin | ||
share | ||
sys | ||
tools | ||
usr.bin | ||
usr.sbin | ||
x11 | ||
build.sh | ||
BUILDING | ||
Makefile | ||
Makefile.inc | ||
UPDATING |