29.5. Linux/x86-64 下 CPU 熱插拔的韌體支援

Linux/x86-64 現在支援 CPU 熱插拔。由於各種原因,Linux 希望在啟動時預先知道可以插入系統的最大 CPU 數量。 ACPI 3.0 目前沒有官方方法將此資訊從韌體提供給作業系統。

在 ACPI 中,每個 CPU 在 MADT 表中都需要一個 LAPIC 物件 (ACPI 3.0 規範中的 5.2.11.5)。 ACPI 已經具有透過將 LAPIC 物件中的 Enabled 位設定為零來停用 LAPIC 物件概念。

對於 CPU 熱插拔,Linux/x86-64 現在期望任何未來可能的熱插拔 CPU 已經存在於 MADT 中。 如果 CPU 尚未可用,則應將其 LAPIC Enabled 位設定為 0。 Linux 將使用停用的 LAPIC 的數量來計算未來 CPU 的最大數量。

在最壞的情況下,使用者可以使用命令列選項(additional_cpus=...)覆蓋此選擇,但建議在 MADT 中提供正確的數量(或對其進行合理的近似,傾向於更多而不是更少),以避免手動配置。