【发布时间】:2021-10-26 15:09:48
【问题描述】:
我熟悉Linux内核内存通常是1:1映射的(达到一定的区域限制)。据我了解,为了使这种 1:1 映射更有效,struct page 数组是虚拟映射的。
我想看看是不是这样。有没有办法测试 - 给定地址(让我们说 struct page 的地址)检查它是 1:1 映射还是虚拟映射?
【问题讨论】:
-
@wxz 谢谢。在浏览完链接之后,我还有另一个稍微无关但至关重要的问题来理解核心概念。虚拟页面(通过页表)能否换出逻辑内核页面(1:1 映射的页面)。似乎有可能,因为同一页框可用于另一页。但是内核是否知道它需要在内核访问时将 1:1 映射的页面带回来?也许内核使所有这些 1:1 映射的页面不可交换?
-
您能否提供您在哪里看到关于“1:1 映射”的声明的来源?我想我可能误解了你最初的问题,但如果你告诉我你以前在哪里看到过这个陈述,我可能会有一个答案来提供帮助。
-
你得到答案了吗?您能否提供您看到 1:1 映射的来源?
-
@wxz 仍然没有找到答案,但我认为枚举所有结构页面将显示页面是逻辑映射 (1:1) 还是虚拟映射。我没有来源,我只是在问内核在内存不足时是否可以换出逻辑映射的页面。
标签: linux memory-management linux-kernel operating-system memory-address