Что на самом деле делают опции загрузки noapic и noacpi?

У меня были проблемы с загрузкой Ubuntu на машине, и добавление noapic и noacpi к параметру загрузки vmlinuz решило проблему.

Я знаю, что noapic - это отключение переназначения прерываний, а noacpi связано с конфигурацией питания, но что они на самом деле делают в ядре Linux? Они пропускают загрузку определенных модулей?

1
0
3 894
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно Руководство администратора Linux Документация по параметрам ядра,

noapic          [SMP,APIC] Tells the kernel to not make use of any
                IOAPICs that may be present in the system.
pci=noacpi      [X86] Do not use ACPI for IRQ routing
            or for PCI scanning.

С программной точки зрения noapic устанавливает переменную disable_apic в 1 в setup_disableapic из /arch/x86/kernel/apic/apic.c, что приводит к тому, что apic_intr_mode_select возвращает APIC_PIC, что приводит к тому, что функция apic_intr_mode_init оставляет PIC в режиме PIC (8259), а default_setup_apic_routing не вызывается.

И вызовы pci=noacpi приводят к появлению parse_pci(char *arg) в https://elixir.bootlin.com/linux/v4.19/source/arch/x86/kernel/acpi/boot.c#L1689, вызывая acpi_disable_pci, который устанавливает acpi_pci_disabled в 1 и вызывает acpi_noirq_set для выполнения действий, указанных в документации.

Для получения дополнительной справочной информации см. Следующие ресурсы Какие есть варианты загрузки ядра "acpi" и "noapic"? База знаний Redhat и IRQ, ACPI и APIC и ядро ​​Linux

Очень интересно. Не могли бы вы подробнее рассказать о побочных эффектах использования noapic? Связанные документы действительно немного объясняют, но не более того, чем «Отключение APIC лишает возможности использовать совместное использование IRQ или переназначение IRQ устройства».

djvg 14.11.2020 23:45

Другие вопросы по теме