Suppose software does a write to device memory that allows early write acknowledgement, then executes a DSB instruction.
*device_memory = 1; /* Suppose the memory type is Device-nGnRE */ asm volatile("dsb sy" : : : "memory");
Because the memory type is Device-nGnRE, the memory system can return a write acknowledgement before the write has reached its endpoint. Does this mean the DSB instruction can complete before the write has reached its endpoint? Could someone point me to a section of the "Armv8 Architecture Reference Manual" that explains this?