freebsd-dev/sys/amd64
Alan Cox 662d471da6 Remove a broken micro-optimization from pmap_enter(). The ill effect
of this micro-optimization occurs when we call pmap_enter() to wire an
already mapped page.  Because of the micro-optimization, we fail to
mark the PTE as wired.  Later, on teardown of the address space,
pmap_remove_pages() destroys the PTE before vm_fault_unwire() has
unwired the page.  (pmap_remove_pages() is not supposed to destroy
wired PTEs.  They are destroyed by a later call to pmap_remove().)
Thus, the page becomes lost.

Note: The page is not lost if the application called munlock(2), only
if it relies on teardown of the address space to unwire its pages.

For the historically inclined, this bug was introduced by a
megacommit, revision 1.182, roughly six years ago.

Leak observed by: green@ and dillon independently
Patch submitted by: dillon at backplane dot com
Reviewed by: tegge@
MFC after: 1 week
2004-05-28 19:42:02 +00:00
..
acpica MFi386: numerous interrupt and acpi updates 2004-05-16 20:30:47 +00:00
amd64 Remove a broken micro-optimization from pmap_enter(). The ill effect 2004-05-28 19:42:02 +00:00
compile Make space for compilations. 2002-07-06 02:49:07 +00:00
conf Turn on modules for amd64. Fear. 2004-05-17 22:13:14 +00:00
ia32 Don't repeat the definition of IDTVEC(). It is in asmacros.h. 2004-05-24 11:28:11 +00:00
include MFi386 (1.37: GUPROF calibration macros; only routine adjustments needed). 2004-05-20 16:22:57 +00:00
isa Fixed profiling of trap, syscall and interrupt handlers and some 2004-05-24 12:08:56 +00:00
pci MFi386: numerous interrupt and acpi updates 2004-05-16 20:30:47 +00:00
Makefile This commit adds basic support for the UFS2 filesystem. The UFS2 2002-06-21 06:18:05 +00:00