为什么禁用内核页表隔离会减少 MemTotal?

为什么禁用内核页表隔离会减少 MemTotal?

Iso 内核 (Linux 5.4.60)、Iso 硬件、Iso 配置,除了情况 A:CONFIG_PAGE_TABLE_ISOLATION=y 和情况 B:CONFIG_PAGE_TABLE_ISOLATION=n

iomem 报告了相同的映射(除了情况 B 中内核代码大小略低之外)

但是,cat /proc/meminfo报告 MemTotal 案例 B < MemTotal 案例 A(约 20K)

当然我知道这完全是边缘化的。但是,我想知道禁用 KPTI(内核页表隔离)如何减少 MemTotal。

(当然我也核对过好几次了。)


编辑:主线 Linux 5.4.66 (x86_64) 下的更多详细信息:

情况 A(CONFIG_PAGE_TABLE_ISOLATION=y):

8.166.984 KB memtotal(由 /proc/meminfo 报告)

内存:8163640K/8387700K 可用(8194K 内核代码、415K rwdata、1528K rodata、776K init、788K bss、224060K 保留、0K cma 保留)(如启动时报告)

情况 A' (CONFIG_PAGE_TABLE_ISOLATION=y) 但启动 nopti:

上述报告没有变化???

情况 B(CONFIG_PAGE_TABLE_ISOLATION=n):

8.166.964 KB memtotal(由 /proc/meminfo 报告)=> -20KB / CASE A ???

内存:8163640K/8387700K 可用(8194K 内核代码、407K rwdata、1528K rodata、756K init、816K bss、224060K 保留、0K cma 保留)

换句话说 :

  • 数据段缩小 8K,init 缩小 20K,bss 段增加 8+20。

添加到仍然存在的最初问题(对我来说更重要):

1/取消设置 CONFIG_PAGE_TABLE_ISOLATION 为何会减少 memtotal 20K ?

2/ 如 §15.3 中所述,消耗的 2MB RAM 在哪里?文档

3/为什么启动 nopti 对内核内存的影响与取消设置 CONFIG_PAGE_TABLE_ISOLATION 不同?

相关内容