在函数struct page *rmqueue(..)
中,我使用page_to_phys(page)
提取物理地址,并使用page_address(page)
提取线性地址(也称为virtual address)。我的问题是如何提取操作系统生成的逻辑地址,以便可以从逻辑--->线性--->物理地址空间中完成映射概述。
这仅仅是我需要从分段单位中减去的x86的偏移量吗?
答案 0 :(得分:0)
因此,在浏览代码时,我在Linux内核4.14.4+的struct page *
alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma,
unsigned long addr, int node, bool hugepage)
中找到了一个名为mm/mempolicy.c
的函数
参数unsigned long addr是逻辑地址。也可以使用问题中已经提到的功能,从可以提取物理地址和线性地址(虚拟)的功能访问该页面。