Чудя се дали на теория е възможно да се активират хипернишки, след като са били деактивирани в BIOS и обратно. Както се оказва, ако хипернишките са деактивирани, те все още се показват в MADT таблиците на ACPI като деактивирани ядра. Това е примерен изход от MADT с процесор с 4 ядра и 2 нишки на ядро и деактивирана хипер-нишка.
CPU 0: APIC_ID=0 ACPI_PROCESSOR_ID=0 ENABLED=1
CPU 1: APIC_ID=2 ACPI_PROCESSOR_ID=1 ENABLED=1
CPU 2: APIC_ID=4 ACPI_PROCESSOR_ID=2 ENABLED=1
CPU 3: APIC_ID=6 ACPI_PROCESSOR_ID=3 ENABLED=1
CPU 4: APIC_ID=255 ACPI_PROCESSOR_ID=4 ENABLED=0
CPU 5: APIC_ID=255 ACPI_PROCESSOR_ID=5 ENABLED=0
CPU 6: APIC_ID=255 ACPI_PROCESSOR_ID=6 ENABLED=0
CPU 7: APIC_ID=255 ACPI_PROCESSOR_ID=7 ENABLED=0
Чудя се дали (а) има опция за активиране на тези ядра по време на изпълнение (без рестартиране и преминаване през BIOS). И (б) в какво (добре дефинирано или не) състояние е хипернишка/процесор, ако не е активиран (т.е. изпълнява ли инструкции hlt или mwait с деактивиран локален APIC например?).
Това, което прочетох в ACPI спецификацията (5.2.12.2 Processor Local APIC Structure) е следното за активирания флаг:
Ако е нула, този процесор е неизползваем и поддръжката на операционната система няма да се опита да го използва.
Въпреки това, ако някой знае, ще ми е интересно да разбера какво е действителното състояние, в което се намира деактивираната хипернишка. Например алгоритъмът на MP Initialization Protocol, както е описано в Ръководството за разработчици на софтуер на Intel, Том 3 (Раздел 8.4.3), се изпълнява на деактивираните хипер-нишки по време на инициализация?