summaryrefslogtreecommitdiffstats
path: root/Documentation/translations/zh_CN/mm/page_table_check.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/translations/zh_CN/mm/page_table_check.rst')
-rw-r--r--Documentation/translations/zh_CN/mm/page_table_check.rst13
1 files changed, 13 insertions, 0 deletions
diff --git a/Documentation/translations/zh_CN/mm/page_table_check.rst b/Documentation/translations/zh_CN/mm/page_table_check.rst
index e8077310a76c..dc34570dceff 100644
--- a/Documentation/translations/zh_CN/mm/page_table_check.rst
+++ b/Documentation/translations/zh_CN/mm/page_table_check.rst
@@ -54,3 +54,16 @@
可以选择用PAGE_TABLE_CHECK_ENFORCED来构建内核,以便在没有额外的内核参数的情况下获得页表
支持。
+
+实现注意事项
+============
+
+我们特意决定不使用 VMA 信息,以避免依赖于 MM 状态(除了有限的 “struct page” 信息)。页表检查
+独立于 Linux-MM 状态机,它验证用户可访问的页面不会被错误地共享。
+
+PAGE_TABLE_CHECK 依赖于 EXCLUSIVE_SYSTEM_RAM。原因在于,若没有 EXCLUSIVE_SYSTEM_RAM,
+用户被允许通过 /dev/mem 将任意物理内存区域映射到用户空间。同时,页面可能在映射到用户空间期间
+改变自己的属性(例如,从匿名页面变为命名页面),导致页表检查检测到“损坏”。
+
+即使有 EXCLUSIVE_SYSTEM_RAM,I/O 页面可能仍然被允许通过 /dev/mem 映射。然而,这些页面始终
+被视为命名页面,所以它们不会破坏页表检查中使用的逻辑。