Alan Cox e1de0706a0 In a few places, like the implementation of ptrace(), a thread may call
upon pmap_enter() to create a mapping within a different address space,
i.e., not the thread's own address space.  On i386, this entails the
creation of a temporary mapping to the affected page table page (PTP).  In
general, pmap_enter() will read from this PTP, allocate a PV entry, and
write to this PTP.  The trouble comes when the system is short of memory.
In order to allocate a new PV entry, an older PV entry has to be
reclaimed.  Reclaiming a PV entry involves destroying a mapping, which
requires access to the affected PTP.  Thus, the PTP mapped at the
beginning of pmap_enter() is no longer mapped at the end of pmap_enter(),
which leads to pmap_enter() modifying the wrong PTP.  To address this
problem, pmap_pv_reclaim() is changed to use an alternate method of
mapping PTPs.

Update a related comment.

Reported by:	pho
Diagnosed by:	kib
MFC after:	5 days
2012-10-08 16:57:05 +00:00
..
2012-10-07 15:37:30 +00:00
2012-09-14 22:00:03 +00:00
2012-09-18 08:00:43 +00:00
2012-08-16 19:22:34 +00:00
2012-08-16 13:01:56 +00:00
2012-09-23 09:13:57 +00:00
2012-04-16 10:33:46 +00:00
2012-10-03 05:06:45 +00:00
2012-09-30 15:42:20 +00:00