cvs commit: src/sys/amd64/amd64 pmap.c src/sys/amd64/include
pmap.h src/sys/i386/i386 pmap.c src/sys/i386/include pmap.h
Alan Cox
alc at FreeBSD.org
Sun Oct 10 12:08:00 PDT 2004
alc 2004-10-10 19:08:00 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_5)
sys/amd64/amd64 pmap.c
sys/amd64/include pmap.h
sys/i386/i386 pmap.c
sys/i386/include pmap.h
Log:
MFC multiple pmap changes
amd64 and i386
- Remove unnecessary checks for curthread == NULL and pmap == NULL.
- Release the page queues lock earlier in pmap_protect() and pmap_remove()
in order to reduce contention.
- Remove an outdated assertion from _pmap_allocpte().
- Simplify the reference counting of page table pages. Specifically, use
the page table page's wired count rather than its hold count to contain
the reference count.
- Prevent the unexpected deallocation of a page table page while
performing pmap_copy().
- Eliminate the unnecessary masking of the page offset bits from the
physical address that is stored in the vm_page.
- Undo revision 1.251. This change was a performance pessimizing work-
around that is no longer required. Now, if the preexisting PTE is
invalid, pmap_enter() does not call pmap_invalidate_page() to update
the TLB(s).
- Make pte_load_store() an atomic operation in all cases, not just i386
PAE.
- Restructure pmap_enter() to prevent the loss of a page modified (PG_M)
bit in a race between processors. (This restructuring assumes the newly
atomic pte_load_store() for correct operation.)
amd64 only
- It is now an error to call pmap_unuse_pt without the paddr of the pde
that contained the pte.
- Remove an unused declaration.
i386 only
- Modify pmap_pte() to support its use on non-current, non-kernel pmaps
without holding Giant.
Approved by: re (scottl)
Revision Changes Path
1.491.2.4 +88 -90 src/sys/amd64/amd64/pmap.c
1.122.2.2 +15 -5 src/sys/amd64/include/pmap.h
1.494.2.6 +99 -81 src/sys/i386/i386/pmap.c
1.112.2.2 +17 -5 src/sys/i386/include/pmap.h
More information about the cvs-src
mailing list