【发布时间】:2012-01-19 07:46:56
【问题描述】:
有没有办法检查相关页面是否被指定进程使用?
即我有一个指向struct page 和struct task_struct 的指针,我想获得一个布尔值,表示页面是否在进程的VMA 中。目前,我一直在获取进程 VMA 中页面的虚拟地址。如果我得到它,我将能够遍历pgd 并查看它是否存在。
我已经尝试过在vma_address()(mm/rmap.c)中采用的方法,但是在循环任务的mm_struct->mmap 时,列表中每个vm_area_struct 的虚拟地址似乎都不同。这与find_vma()(在'mm/mmap.c`)相矛盾,后者使用作为参数提供的固定地址扫描任务的VMA(尽管搜索相应的rb-tree)。
那么,做这些事情的正确方法是什么?
【问题讨论】:
标签: linux memory-management linux-kernel kernel