freebsd-skq/sys/amd64/include
kib a3142db9ac Change the pmap_ts_referenced() method of amd64 pmap to use shared
pvh_global_lock.  This allows the method to be executed in parallel,
avoiding undue contention on the pvh_global_lock for the multithreaded
pagedaemon.

The pmap_ts_referenced() function has to inspect the page mappings for
several pmaps, which need to be locked while pv list lock is owned.
This contradicts to the lock order, where pmap lock is before pv list
lock.  Introduce the generation count for the pv list of the page or
superpage, which indicate any change in the pv list, and, as usual,
perform restart of the iteration if generation changed while pv lock
was dropped for blocking acquire of a pmap lock.

Reported and tested by:	pho
Reviewed by:	alc
Sponsored by:	The FreeBSD Foundation
2013-08-07 16:33:15 +00:00
..
pc
xen
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h
acpica_machdep.h
apicvar.h
apm_bios.h
asm.h
asmacros.h
atomic.h
bus_dma.h
bus.h
clock.h
counter.h
cpu.h Revert r253748,253749 2013-07-28 18:44:17 +00:00
cpufunc.h
cputypes.h
db_machdep.h
elf.h
endian.h
exec.h
fdt.h
float.h
floatingpoint.h
fpu.h
frame.h
gdb_machdep.h
ieeefp.h
in_cksum.h
intr_machdep.h
iodev.h
kdb.h
limits.h
md_var.h x86: detect mwait capabilities and extensions, when present 2013-07-28 17:54:42 +00:00
memdev.h
metadata.h
minidump.h
mp_watchdog.h
nexusvar.h
npx.h
ofw_machdep.h
param.h
pcb.h
pci_cfgreg.h
pcpu.h
pmap.h Change the pmap_ts_referenced() method of amd64 pmap to use shared 2013-08-07 16:33:15 +00:00
pmc_mdep.h
ppireg.h
proc.h
profile.h
psl.h
ptrace.h
reg.h
reloc.h
resource.h
runq.h
segments.h
setjmp.h
sf_buf.h
sigframe.h
signal.h
smp.h
specialreg.h
stack.h
stdarg.h
sysarch.h
timerreg.h
trap.h
tss.h
ucontext.h
varargs.h
vdso.h
vm.h
vmm_dev.h
vmm_instruction_emul.h
vmm.h
vmparam.h