HomeFreeBSD

amd64 pmap: block on turnstile for lock-less DI.

Description

amd64 pmap: block on turnstile for lock-less DI.

Port the code to block on turnstile instead of yielding, to lock-less
delayed invalidation. The yield might cause tight loop due to priority
inversion.

Since it is impossible to avoid race between block and wake-up, arm
1-tick callout to wakeup when thread blocks itself.

Reported and tested by: mjg
Reviewed by: alc, markj
Sponsored by: The FreeBSD Foundation
MFC after: 2 months
Differential revision: https://reviews.freebsd.org/D20636

Details

Provenance
kibAuthored on
Reviewer
alc
Differential Revision
D20636: amd64 pmap: block on turnstile for lock-less DI
Parents
rS349325: Allow compiling ukbdmap.h on arm, since it appears to work fine.
Branches
Unknown
Tags
Unknown