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
F174872270: D38945.id118475.diff
Tue, Oct 6, 4:44 PM
Unknown Object (File)
Thu, Oct 1, 5:15 PM
Unknown Object (File)
Thu, Oct 1, 2:26 PM
Unknown Object (File)
Thu, Oct 1, 2:26 AM
Unknown Object (File)
Thu, Oct 1, 1:50 AM
Unknown Object (File)
Tue, Sep 29, 4:09 PM
Unknown Object (File)
Tue, Sep 22, 7:40 PM
Unknown Object (File)
Sun, Sep 20, 5:45 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.