diff options
author | alc <alc@FreeBSD.org> | 2012-05-26 06:10:25 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2012-05-26 06:10:25 +0000 |
commit | f81e3f6141be848509bb1ffea865f3573c2c25eb (patch) | |
tree | 73bd3ebbcc1b8fdda45772ce71274048d984c7a4 /sys/i386/include/pmap.h | |
parent | 0f221694c3baf7bb8b75eae7cd2bf2ba07ab5479 (diff) | |
download | FreeBSD-src-f81e3f6141be848509bb1ffea865f3573c2c25eb.zip FreeBSD-src-f81e3f6141be848509bb1ffea865f3573c2c25eb.tar.gz |
Rename pmap_collect() to pmap_pv_reclaim() and rewrite it such that it no
longer uses the active and inactive paging queues. Instead, the pmap now
maintains an LRU-ordered list of pv entry pages, and pmap_pv_reclaim() uses
this list to select pv entries for reclamation.
Note: The old pmap_collect() tried to avoid reclaiming mappings for pages
that have either a hold_count or a busy field that is non-zero. However,
this isn't necessary for correctness, and the locking in pmap_collect() was
insufficient to guarantee that such mappings weren't reclaimed. The new
pmap_pv_reclaim() doesn't even try.
MFC after: 5 weeks
Diffstat (limited to 'sys/i386/include/pmap.h')
-rw-r--r-- | sys/i386/include/pmap.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/i386/include/pmap.h b/sys/i386/include/pmap.h index 3012a00..3e0ba6f 100644 --- a/sys/i386/include/pmap.h +++ b/sys/i386/include/pmap.h @@ -481,7 +481,7 @@ struct pv_chunk { pmap_t pc_pmap; TAILQ_ENTRY(pv_chunk) pc_list; uint32_t pc_map[_NPCM]; /* bitmap; 1 = free */ - uint32_t pc_spare[2]; + TAILQ_ENTRY(pv_chunk) pc_lru; struct pv_entry pc_pventry[_NPCPV]; }; |