-
Notifications
You must be signed in to change notification settings - Fork 16
Failure-atomic Problems #8
Copy link
Copy link
Open
Description
Hi, Prof. Chen
Sorry to bother you with some trivial questions:
- With some experiments on Optane DC, we find that when invoking mmap() with a dax-enabled file, the first store on each page (4 KB) will always abort the RTM transaction. With strace and perf, we find that the store will incur one page-fault (sometimes two) and no system call. We guess it is the page-fault aborting the RTM transaction. This effect will not bother a newly allocated node (smaller than 4 KB) as something has already been updated (e,g, sibling pointer). However, when we perform a restart, all nodes on persistent memory can't be modified (the lock bit can's be set) due to the RTM abort (read is available after restart).
- We think maybe in your allocation/deallocation code on persistent memory, some persistent primitives are also needed.
- We find that you initial the NVM pool with zero (map a zero-ed file), however, we think the newly allocated node still needs to be initialized as the memory may be a recycled one (deallocations also do not clear that memory).
- Can you provide some references for adapting the persistent order to the store order inside one cache line on a platform without eADR (or maybe it's already guaranteed by the hardware)?
I hope you can get me out of these confusions.
Best wishes!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels