三重映射
- 从pmemobj的ID到虚拟地址的映射
- 从虚拟地址到文件内偏移的映射
- 从文件到物理地址的映射
pmemobj到虚拟地址的映射
查看pmemobj的创建函数 pmemobj_createW(src\libpmemobj\obj.c)
pmemobj_createW —> pmemobj_createU(src\libpmemobj\obj.c)
pmemobj_createU —> util_pool_create(src\common\set.c)
util_pool_create —> util_pool_create_uuids(src\common\set.c)
util_pool_create_uuids —> util_poolset_create_set(src\common\set.c)
util_poolset_create_set —> util_poolset_single(src\common\set.c)
设置DAX模式就主要到util_poolset_single进行处理
其中rep->part[0].fd成员使用 util_poolset_file填充
rep->part[0].alignment使用device_dax_alignment填充
查看pmemobj_open函数(src\libpmemobj\obj.c)