是否可以在歷史核心日誌中檢查 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 (mockbuild@bkernel01.phx2.fedoraproject.org) (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 (mockbuild@bkernel02.phx2.fedoraproject.org) (gcc version 7.3.1 20180130 (Red Hat 7.3.1-2) (GCC)) #1 SMP Tue Feb 13 17:02:01 UTC 2018
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 中實現。
pcid
如果您的 cpu 支持它(和pge
標誌),則應該啟用它lscpu
,除非您使用 Xen(“Xen PV 需要一些工作”)或引導 32 位核心(“PCID 只能在 64 位模式下使用” )。這有點令人困惑。隨後在上游 Linux 4.15 中引入了 KPTI。然而,上面的日誌消息來自 Fedora 核心 4.14.8-300,它必須包含 KPTI 的反向移植。考慮到 Meltdown 漏洞的災難性,這是個好消息。KPTI、X86_BUG_CPU_INSECURE 等的程式碼已反向移植到2018 年 1 月 2 日發布的上游穩定版 4.14.11。
其他最明顯的消息似乎也沒有為我的調查提供一個很好的明確嫌疑人:(。
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