HomeFreeBSD

Add missing data barriers after storeing a new valid pagetable entry.

Description

Add missing data barriers after storeing a new valid pagetable entry.

When moving from an invalid to a valid entry we don't need to invalidate
the tlb, however we do need to ensure the store is ordered before later
memory accesses. This is because this later access may be to a virtual
address within the newly mapped region.

Add the needed barriers to places where we don't later invalidate the
tlb. When we do invalidate the tlb there will be a barrier to correctly
order this.

This fixes a panic on boot on ThunderX2 when INVARIANTS is turned off:
panic: vm_fault_hold: fault on nofault entry, addr: 0xffff000040c11000

Reported by: jchandra
Tested by: jchandra
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D19097

Details

Provenance
andrewAuthored on
Differential Revision
D19097: Add missing pmap dsb instructions
Parents
rS343875: Add a missing data barrier to the start of arm64_tlb_flushID.
Branches
Unknown
Tags
Unknown