Page MenuHomeFreeBSD

Switch the arm64 VM_MEMATTR_DEVICE to nGnRE
ClosedPublic

Authored by andrew on Mar 7 2023, 2:48 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 10, 1:19 PM
Unknown Object (File)
Fri, Apr 10, 8:26 AM
Unknown Object (File)
Fri, Apr 10, 1:33 AM
Unknown Object (File)
Mon, Apr 6, 12:53 PM
Unknown Object (File)
Sun, Apr 5, 12:44 PM
Unknown Object (File)
Mon, Mar 30, 3:21 AM
Unknown Object (File)
Sun, Mar 29, 4:36 AM
Unknown Object (File)
Sat, Mar 28, 6:51 AM
Subscribers

Details

Summary

Move device memory to a weaker type. The new device memory type allows
the system to acknowledge a write to a device before the write has
completed. This is inline with VM_MEMATTR_DEVICE on armv6/armv7.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

andrew retitled this revision from Siwtch the arm64 VM_MEMATTR_DEVICE to nGnRE to Switch the arm64 VM_MEMATTR_DEVICE to nGnRE.Mar 7 2023, 3:46 PM

Seems legit, but I never can keep all the memory models of arm in my head for more than a minute...

sys/arm64/include/vm.h
38–39

You've changed it, so maybe a comment touchup is in order.

Remove an outdated comment

nGnR means the hardware won't merge or reorder memory accesses. nE means it won't acknowledge a write until the device does so, switching to E relaxes this to allow this acknowledgement to happen earlier. Care needs to be taken if we need to check a write has completed but this should be mostly handled as it's also the case on armv6/armv7.

This revision was not accepted when it landed; it landed in state Needs Review.Mar 16 2023, 4:46 PM
This revision was automatically updated to reflect the committed changes.