HomeFreeBSD

Change the pmap_ts_referenced() method of amd64 pmap to use shared
rS254064Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

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

Details

Provenance
kibAuthored on
Parents
rS254063: Sync-up bsdinstall(8)/bsdconfig(8) list of mirrors.
Branches
Unknown
Tags
Unknown

Event Timeline