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 Case B < MemTotal Case A가 보고됩니다(~20K).
물론 나는 이것이 완전히 경계선에 있다는 것을 알고 있습니다. 하지만 KPTI(Kernel Page Table Isolation)를 비활성화하면 MemTotal이 얼마나 감소하는지 알고 싶습니다.
(물론 여러번 확인했습니다.)
편집: 메인라인 Linux 5.4.66(x86_64)에 대한 자세한 내용:
사례 A(CONFIG_PAGE_TABLE_ISOLATION=y):
8.166.984KB 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.964KB 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을 설정 해제하면 메모리 총 20K가 줄어드는 이유는 무엇입니까?
2/ §15.3에서 언급했듯이 2MB RAM은 어디에서 소비됩니까?문서?
3/nopti를 시작하는 것이 CONFIG_PAGE_TABLE_ISOLATION을 설정 해제하는 것과 커널 메모리에 다른 영향을 미치는 이유는 무엇입니까?