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)
Wed, Jun 26, 8:05 AM
Unknown Object (File)
Tue, Jun 25, 7:28 PM
Unknown Object (File)
Mon, Jun 24, 8:47 AM
Unknown Object (File)
Fri, Jun 21, 8:13 PM
Unknown Object (File)
Fri, Jun 21, 1:34 PM
Unknown Object (File)
Fri, Jun 21, 1:02 PM
Unknown Object (File)
Thu, Jun 20, 2:14 PM
Unknown Object (File)
Thu, Jun 20, 1:41 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.