freebsd-nq/sys/i386/xen
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
..
clock.c Refactor Xen PV code to use new event timers subsystem. That uses one-shot 2011-05-13 12:39:37 +00:00
exception.s i386 has not (yet) any DEV_ATPIC conditional than axe it out from Xen 2009-11-27 01:02:17 +00:00
locore.s Eliminate unused variables (see r137912). 2010-01-07 04:47:09 +00:00
mp_machdep.c The size passed to kmem functions should be in terms of bytes and not 2011-12-20 20:29:45 +00:00
mptable.c Don't include mptable_pci.c in Xen kernels. It is only meant for systems 2011-07-17 01:23:50 +00:00
pmap.c In a few places, like the implementation of ptrace(), a thread may call 2012-10-08 16:57:05 +00:00
xen_clock_util.c Migrate the Xen hypervisor clock reading routines into something 2009-05-29 13:36:06 +00:00
xen_machdep.c Spell CRITICAL_ASSERT correctly. 2011-01-04 16:29:07 +00:00
xen_rtc.c Migrate the Xen hypervisor clock reading routines into something 2009-05-29 13:36:06 +00:00