cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

page_table_check.rst (2302B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3:Original: Documentation/vm/page_table_check.rst
      4
      5:翻译:
      6
      7 司延腾 Yanteng Si <siyanteng@loongson.cn>
      8
      9:校译:
     10
     11
     12========
     13页表检查
     14========
     15
     16概述
     17====
     18
     19页表检查允许通过确保防止某些类型的内存损坏来强化内核。
     20
     21当新的页面可以从用户空间访问时,页表检查通过将它们的页表项(PTEs PMD等)添加到页表中来执行额外
     22的验证。
     23
     24在检测到损坏的情况下,内核会被崩溃。页表检查有一个小的性能和内存开销。因此,它在默认情况下是禁用
     25的,但是在额外的加固超过性能成本的系统上,可以选择启用。另外,由于页表检查是同步的,它可以帮助调
     26试双映射内存损坏问题,在错误的映射发生时崩溃内核,而不是在内存损坏错误发生后内核崩溃。
     27
     28双重映射检测逻辑
     29================
     30
     31+-------------------+-------------------+-------------------+------------------+
     32| Current Mapping   | New mapping       | Permissions       | Rule             |
     33+===================+===================+===================+==================+
     34| Anonymous         | Anonymous         | Read              | Allow            |
     35+-------------------+-------------------+-------------------+------------------+
     36| Anonymous         | Anonymous         | Read / Write      | Prohibit         |
     37+-------------------+-------------------+-------------------+------------------+
     38| Anonymous         | Named             | Any               | Prohibit         |
     39+-------------------+-------------------+-------------------+------------------+
     40| Named             | Anonymous         | Any               | Prohibit         |
     41+-------------------+-------------------+-------------------+------------------+
     42| Named             | Named             | Any               | Allow            |
     43+-------------------+-------------------+-------------------+------------------+
     44
     45启用页表检查
     46============
     47
     48用以下方法构建内核:
     49
     50- PAGE_TABLE_CHECK=y
     51  注意,它只能在ARCH_SUPPORTS_PAGE_TABLE_CHECK可用的平台上启用。
     52
     53- 使用 "page_table_check=on" 内核参数启动。
     54
     55可以选择用PAGE_TABLE_CHECK_ENFORCED来构建内核,以便在没有额外的内核参数的情况下获得页表
     56支持。