과거 커널 로그에서 KPTI 및 ASID/PCID 사용량을 확인할 수 있습니까?

과거 커널 로그에서 KPTI 및 ASID/PCID 사용량을 확인할 수 있습니까?

몇 달 분량의 커널 로그가 저장되어 있습니다. 내 시스템이 언제 시작될지에 관해 유용한 정보를 얻을 수 있습니까?KPTI, 그리고 아마도ASID/PCID성능을 저하시키는 기능은 무엇입니까?

저는 특히 Fedora 커널 4.14 - 4.15에 관심이 있습니다.

내 현재 커널은 4.15.10-300.fc27.x86_64이며 KPTI가 활성화되어 있습니다.

$ cat /sys/devices/system/cpu/vulnerabilities/meltdown 
Mitigation: PTI

나는 결과가 없는 순진한 검색을 시도했습니다.

$ journalctl --since=2018-01-01 _TRANSPORT=kernel | grep -iE "kpti|asid|pcid"

문맥

디버깅을 하려고 하는데끔찍한 Xwayland 교통사고.

제가 보기에 충돌은 2018년 2월 28일에 시작된 것 같습니다. 다른 사람들에게는 이런 일이 더 자주 발생하는데, 아마도 빠르면 2018-02-25일 것입니다.

저는 CPU 마이크로코드 업데이트가 매우 의심스럽습니다. 이 버그는 "예기치 않은 페이지 오류"를 일으키는 것으로 알려져 있습니다. 그러나 타임라인은 완전히 설득력이 없습니다. 그래서 이 생각이 들었습니다. 왜냐면 제가예상치 못한 페이지 오류를 조사할 때 살펴봐야 할 또 다른 곳은 커널입니다. 최근 커널 페이지 테이블 지원에 큰 변화가 있었던 것 같습니다!

내 커널은 2018년 2월 18일에 4.14에서 4.15 시리즈로 업그레이드되었습니다(Fedora가 적용한 패치를 사용하여).

Feb 16 18:59:00 alan-laptop kernel: Linux version 4.14.18-300.fc27.x86_64 ([email protected]) (gcc version 7.3.1 20180130 (Red Hat 7.3.1-2) (GCC)) #1 SMP Thu Feb 8 01:35:31 UTC 2018
Feb 18 12:50:42 alan-laptop kernel: Linux version 4.15.3-300.fc27.x86_64 ([email protected]) (gcc version 7.3.1 20180130 (Red Hat 7.3.1-2) (GCC)) #1 SMP Tue Feb 13 17:02:01 UTC 2018

답변1

KPTI는 다음 줄로 표시됩니다.

Jan 04 14:40:33 alan-laptop kernel: Kernel/User page tables isolation: enabled

만약 너라면장애를 입히다PCID를 전달하면 nopcid로그 메시지가 나타납니다.

+   pr_info("nopcid: PCID feature disabled\n");

그렇지 않으면 커널 버전을 확인하기 위한 심층적인 지식이 필요합니다. 죄송합니다.

PCID 지원은 업스트림 커널 버전 4.14에서 구현됩니다.. Xen을 사용하거나("Xen PV에 약간의 작업이 필요함") 32비트 커널을 부팅하지 않는 한("PCID는 64비트 모드에서만 사용할 수 있음") CPU가 이를 지원하는 경우( pcidpge의 플래그) 이를 활성화 lscpu해야 합니다. .

이것은 약간 혼란 스럽습니다.KPTI는 나중에 업스트림 Linux 4.15에 도입되었습니다.. 그러나 위의 로그 메시지는 KPTI의 백포트를 포함해야 하는 Fedora 커널 4.14.8-300에서 가져온 것입니다. Meltdown 취약점이 얼마나 치명적인지 생각해보면 이는 좋은 소식입니다. KPTI, X86_BUG_CPU_INSECURE 및 기타 코드는 다음으로 백포트됩니다.업스트림 안정 4.14.11, 2018년 1월 2일에 출시되었습니다.


다른 가장 명백한 메시지도 내 조사에 대한 명확한 용의자를 제공하지 않는 것 같습니다 :(.

CPU 마이크로코드 업데이트:

May 18 18:42:52 alan-laptop kernel: microcode: sig=0x306d4, pf=0x40, revision=0x23
May 18 18:42:52 alan-laptop kernel: microcode: sig=0x306d4, pf=0x40, revision=0x24

May 19 09:03:58 alan-laptop kernel: microcode: microcode updated early to revision 0x24, date = 2016-04-29
May 19 09:03:58 alan-laptop kernel: microcode: sig=0x306d4, pf=0x40, revision=0x24
May 19 09:03:58 alan-laptop kernel: microcode: Microcode Update Driver: v2.2.

Jun 03 09:24:34 alan-laptop kernel: microcode: microcode updated early to revision 0x25, date = 2017-01-27
Jun 03 09:24:34 alan-laptop kernel: microcode: sig=0x306d4, pf=0x40, revision=0x25

Jan 11 08:48:40 alan-laptop kernel: microcode: microcode updated early to revision 0x25, date = 2017-01-27
Jan 11 08:48:40 alan-laptop kernel: microcode: sig=0x306d4, pf=0x40, revision=0x25

Feb 15 17:02:12 alan-laptop kernel: microcode: microcode updated early to revision 0x28, date = 2017-11-17
Feb 15 17:02:12 alan-laptop kernel: Intel Spectre v2 broken microcode detected; disabling Speculation Control
Feb 15 17:02:12 alan-laptop kernel: microcode: sig=0x306d4, pf=0x40, revision=0x28

Mar 21 12:21:28 alan-laptop kernel: microcode: microcode updated early to revision 0x2a, date = 2018-01-18
Mar 21 12:21:28 alan-laptop kernel: microcode: sig=0x306d4, pf=0x40, revision=0x2a

고스트 변종 2:

Jan 15 09:10:59 alan-laptop kernel: Spectre V2 mitigation: Vulnerable: Minimal generic ASM retpoline

Jan 25 10:59:57 alan-laptop kernel: Spectre V2 mitigation: Mitigation: Full generic retpoline

Feb 15 17:02:12 alan-laptop kernel: Intel Spectre v2 broken microcode detected; disabling Speculation Control
Feb 15 17:02:12 alan-laptop kernel: Spectre V2 : Mitigation: Full generic retpoline

Mar 21 12:21:28 alan-laptop kernel: Spectre V2 : Mitigation: Full generic retpoline
Mar 21 12:21:28 alan-laptop kernel: Spectre V2 : Spectre v2 mitigation: Enabling Indirect Branch Prediction Barrier
Mar 21 12:21:28 alan-laptop kernel: Spectre V2 : Enabling Restricted Speculation for firmware calls

관련 정보