HomeFreeBSD

Ordinarily, during a superpage promotion or demotion within a pmap, the

Description

Ordinarily, during a superpage promotion or demotion within a pmap, the
pmap's lock ensures that other operations on the pmap don't observe the
old mapping being broken before the new mapping is established. However,
pmap_kextract() doesn't acquire the kernel pmap's lock, so it may observe
the broken mapping. And, if it does, it returns an incorrect result.

This revision implements a lock-free solution to this problem in
pmap_update_entry() and pmap_kextract() because pmap_kextract() can't
acquire the kernel pmap's lock.

Reported by: andrew, greg_unrelenting.technology
Reviewed by: andrew, markj
Tested by: greg_unrelenting.technology
X-MFC with: r350579
Differential Revision: https://reviews.freebsd.org/D21169

Details

Provenance
alcAuthored on
Reviewer
andrew
Differential Revision
D21169: Handle concurrent pmap_kextract() and promotion/demotion on arm64
Parents
rS350740: r350739 try #2
Branches
Unknown
Tags
Unknown