]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Have arm64's pmap_fault() handle WnR faults on dirty PTEs.
authorMark Johnston <markj@FreeBSD.org>
Mon, 29 Jul 2019 21:21:53 +0000 (21:21 +0000)
committerMark Johnston <markj@FreeBSD.org>
Mon, 29 Jul 2019 21:21:53 +0000 (21:21 +0000)
commit1587dc37fa048da2972367900372079c59011525
tree0116aa595c2f507a5fffdb98bc6c6c23e053f554
parent0367bca479dcad03761d7279b128943140c6888f
Have arm64's pmap_fault() handle WnR faults on dirty PTEs.

If we take a WnR permission fault on a managed, writeable and dirty
PTE, simply return success without calling the main fault handler.  This
situation can occur if multiple threads simultaneously access a clean
writeable mapping and trigger WnR faults; losers of the race to mark the
PTE dirty would end up calling the main fault handler, which had no work
to do.

Reported by: alc
Reviewed by: alc
MFC with: r350004
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D21097
sys/arm64/arm64/pmap.c