x86-64atomiccpu-architecturessepersistent-memory

On x86-64, is the “movnti” or "movntdq" instruction atomic when system crash?


When using persistent memory like Intel optane DCPMM, is it possible to see partial result after reboot if system crash(power outage) in execution of movnt instruction?

For:

movntpd is assumed to be identical to movntps.


Related questions:


Solution

  • The following operations are guaranteed to be persistently atomic:

    Note all atomic guarantees mentioned in the Intel SDM V3 Section 8.1.1 apply to persistent memory.

    In addition, the following operations are persistently atomic:

    There is no architectural persistent atomicity guarantee for everything else, including 64-byte AVX512 vmovntdq / vmovntps full-line stores.

    These guarantees apply to Asynchronous DRAM Refresh (ADR) platforms and Enhanced Asynchronous DRAM Refresh (eADR) platforms. (On eADR, the cache hierarchy is in the persistence domain. See: Build Persistent Memory Applications with Reliability Availability and Serviceability.)

    This answer is based on my private correspondence with Andy Rudoff (Intel).