1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00
freebsd/sys/amd64
Konstantin Belousov 872d995f76 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
..
acpica Consistently use round_page(x) rather than roundup(x, PAGE_SIZE). There is 2013-02-15 22:43:08 +00:00
amd64 Change the pmap_ts_referenced() method of amd64 pmap to use shared 2013-08-07 16:33:15 +00:00
conf enable KDB_TRACE in GENERICs 2013-08-07 08:03:50 +00:00
ia32 Use slightly more idiomatic expression to get the address of array. 2013-05-27 18:39:39 +00:00
include Change the pmap_ts_referenced() method of amd64 pmap to use shared 2013-08-07 16:33:15 +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