--
You received this message because you are subscribed to the Google Groups "pmem" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pmem+uns...@googlegroups.com.
To post to this group, send email to pm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pmem/f4e59127-1ef5-4fdd-b9aa-d06324bc1ef4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi Chun,The CLFLUSH instruction has the fence built in to it. That's actually the motivation for adding the CLFUSHOPT instruction, so software can flush a range of cache lines without the implicit fence between each line.
--Hello everyone,
Just a little question. In the "src/libpmem/pmem.c", it comments as following.* To flush a range to pmem when neither CLFLUSHOPT or CLWB are available* (same as above but fences surrounding CLFLUSH are not required):** CLFLUSH for each cache line in the given range.** PCOMMIT to mark pmem stores in the memory subsystem.** SFENCE to ensure the stores marked by PCOMMIT above have completed.
And I'm curious about, why CLFLUSH doesn't require SFENCE, doesn't need to make it globally visible before PCOMMIT?
Thank you,
Chun Hao
You received this message because you are subscribed to the Google Groups "pmem" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pmem+unsubscribe@googlegroups.com.
To post to this group, send email to pm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pmem/f4e59127-1ef5-4fdd-b9aa-d06324bc1ef4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
-andy
Executions of the CLFLUSH instruction are ordered with respect to each other and with respect to writes, lockedread-modify-write instructions, fence instructions, and executions of CLFLUSHOPT to the same cache line. [1] Theyare not ordered with respect to executions of CLFLUSHOPT to different cache lines.
1. Earlier versions of this manual specified that executions of the CLFLUSH instruction were ordered only by the MFENCE instruction. All processors implementing the CLFLUSH instruction also order it relative to the other operations enumerated above.