freebsd-nq/sys/amd64
Konstantin Belousov d91f339823 When code from r254064 in pmap_ts_referenced() drops pv lock and
blocks on a pmap lock, pmap_release() might proceed in parallel and
destroy the pmap mutex, since unlocked pv lock allows to remove pv
entry owned by the pmap.

For now, gate the pmap_release() on write-locked pvh_global_lock.
Since pmap_ts_release() does not unlock the global lock,
pmap_release() would not destroy pmap mutex until the
pmap_ts_referenced() finished.  We cannot enter pmap_ts_referenced()
and encounter a pv entry for the destroyed pmap if pmap_release()
passed the global lock gate, since pmap_remove_pages() would finish
earlier.

Reported by:	jeff, pho
Reviewed by:	alc
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
2013-08-18 21:36:22 +00:00
..
acpica Consistently use round_page(x) rather than roundup(x, PAGE_SIZE). There is 2013-02-15 22:43:08 +00:00
amd64 When code from r254064 in pmap_ts_referenced() drops pv lock and 2013-08-18 21:36:22 +00:00
conf Add process descriptors support to the GENERIC kernel. It is already being 2013-08-18 10:21:29 +00:00
ia32 Use slightly more idiomatic expression to get the address of array. 2013-05-27 18:39:39 +00:00
include Bump up the maximum addressable memory on amd64 systems from 1TB to 4TB. 2013-08-17 19:49:08 +00:00
linux32 Retire write-only PCB_GS32BIT pcb flag on amd64. 2013-05-09 21:42:43 +00:00
pci Remove duplicate code. Reduce diff between amd64 and i386. 2012-12-01 00:56:19 +00:00
vmm Follow-up commit to fix CR0 issues. Maintain 2013-08-03 03:16:42 +00:00
Makefile