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)
Nov 23 2024, 3:01 AM
Unknown Object (File)
Nov 20 2024, 3:24 AM
Unknown Object (File)
Nov 2 2024, 6:50 AM
Unknown Object (File)
Oct 3 2024, 2:28 AM
Unknown Object (File)
Oct 2 2024, 9:12 PM
Unknown Object (File)
Sep 28 2024, 12:52 PM
Unknown Object (File)
Sep 28 2024, 12:52 PM
Unknown Object (File)
Sep 28 2024, 12:38 PM
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.