sekwo...@gmail.com
unread,Apr 4, 2023, 1:58:03 AM4/4/23Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to pmem
Hi all,
I wanted to bring up a topic for discussion regarding the need of Global Persistent Flush (GPF) in CXL-attached DRAM memory sharing scenarios.
As far as I understand, GPF was initially proposed to provide the same functionality as ADR or eADR with NVDIMMs. It is used to ensure data persistency in CXL-PMEM settings in the event of host failure, such as power failure. However, I am wondering if GPF is also necessary to guarantee crash consistency for memory sharing when multiple hosts share the same CXL-attached device memory (DRAM).
Consider the example of an in-memory shared log on CXL-attached DRAM, which is shared across multiple hosts. If Host 1 writes data and commit records to the shared log (at different cache lines) in order, and Host 2 reads these records to check their validity, a power failure at Host 1 while the data record still exists in the CPU cache of Host 1, but only the commit record became evicted from the cache, may result in the loss of the data record from the CXL-attached DRAM. However, if Host 2 reads the log records after this failure, it may assume that the log records were correctly written by Host 1, since the commit record exists in the shared CXL-attached DRAM.
To address this issue, I believe that GPF support (or programming similar to that used for NVDIMM-attached PM settings using cache-line flushes, non-temporal stores) may be necessary even for CXL-attached DRAM memory sharing.
I would appreciate your thoughts on this matter.
Thanks,
Sekwon