PMDK進行創建文件時調用函數pmem_map_file,而這個函數底層調用mmap,那麼這個PMDK和操作系統函數調用有何不同呢?
內容
Libpmem的pmem_map_file()支持2M/1G(大頁大小)對齊方式,這樣能夠減少頁故障頻率。另外,pmem_memcpy_nodrain()通過單指令、多數據指令(SIMD)、NT存儲指令(MOVNT)拷貝數據。這樣的話,通過libpmem的API函數比mmap()、memcpy()快。
Linux4.5及更高版本支持MAP_SYNC和MAP_SHARED_VALIDATE的標籤使用mmap,來檢測映射文件是否在PM上。
原文
https://www.postgresql.org/message-id/E9AD42D63FB4ADFAD59E3A1%40lab.ntt.co.jp