Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
pmem2: arm64: fix data loss on ARMv8.2+ (improper flushing)
ARMv8.2 separates flush-for-coherency from flush-for-persistency as two instructions: DC CVAC and DC CVAP. It's the latter that is of interest to us, and it is up to the processor to know where the Point of Persistency happens to be. The documentation is very clear, and this PIRL talk dispels all doubt: https://www.youtube.com/watch?v=8QAuN8CL5Zg On the other hand, I found no clear answer whether DC CVAC might be enough on some pre-8.2 hardware. There's no other option though (CVAC is the heaviest flush available). This question is probably moot as pre-8.2 CPUs, while ubiquitous in dev boards, are gone in datacenter gear.
- Loading branch information
Showing
3 changed files
with
73 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters