我能够将虚拟地址转换为内核空间中的物理地址映射(root用户)。我重用了here
提供的工具代码我想在用户空间中进行相同的转换。是否可以在用户空间(非root用户)?
上述工具在内核模式下使用/ proc / pid / maps和/ proc / pid / pagemap文件,
编辑: 收到评论后,这是我更新的问题。
我想在非root权限用户中将虚拟地址转换为物理地址,在找到物理地址后,我将使用它来查找到L2缓存集的映射。 我的任务是找出我的数据加载到二级缓存的位置。
我是否需要编写一个内核模块,该模块将获取用户虚拟地址并返回物理地址?如果是这样,那个方向的任何链接都会有很大的帮助。
是phys_addr = virt_to_phys(virt_addr);正确的选择?还无法理解如何使用它/从我的程序中调用它?