Нужна помощь в анализе медленной загрузки (ASUS ROG X99, ACPI)
У меня достаточно высокопроизводительный компьютер (8-ядерный i7-6900K, Samsung SM961 1 ТБ NVMe, 32 ГБ ОЗУ), но у меня очень медленная загрузка.
$ systemd-analyze
Startup finished in 21.766s (firmware) + 5.769s (loader) + 16.878s (kernel) + 3.532s (userspace) = 47.947s
Я пока игнорирую прошивку и загрузчик. Часть пользовательского пространства занимает менее четырех секунд, что нормально, но ядру - 17 секунд!
У меня есть информация о загрузке здесь:
У меня есть другая аналогично настроенная машина с другой материнской платой / чипсетом, которая намного быстрее загружается, поэтому я подозреваю, что проблема с чипсетом /HW, но я не могу понять, что это такое.
ОБНОВЛЕНИЕ 1: Я обновился до Ubuntu 17.10, но время загрузки примерно такое же. Пользовательское пространство сократилось до 2 с (впечатляет!), Но время ядра превышает 15 с.
Что я заметил в журнале dmesg, так это то, что есть несколько "скачков" вокруг некоторых сообщений ACPI:
[ 0.166049] acpi PNP0A03:03: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[ 2.208064] acpi PNP0A03:03: _OSC: platform does not support [PCIeHotplug]
[ 4.256069] acpi PNP0A03:03: _OSC: OS now controls [PME AER PCIeCapability]
[ 4.256070] acpi PNP0A03:03: FADT indicates ASPM is unsupported, using BIOS configuration
...а также:
[ 4.262024] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
[ 6.304065] acpi PNP0A08:00: _OSC: platform does not support [PCIeHotplug]
[ 8.352073] acpi PNP0A08:00: _OSC: OS now controls [PME AER PCIeCapability]
[ 8.352074] acpi PNP0A08:00: FADT indicates ASPM is unsupported, using BIOS configuration
Конфигурация ACPI как-то связана с медленной загрузкой ядра?
ОБНОВЛЕНИЕ 2: Добавление acpi=off
до параметров загрузки время ядра сокращено с 15 с до 7 с (из которых ~4 с, по-видимому, освобождается при монтировании EXT4-fs на моем диске nvme), поэтому ACPI определенно является временным вором (~8 с).
Однако я не хочу полностью отключать ACPI. Могу ли я попробовать другую конфигурацию, связанную с ACPI?
1 ответ
Та же проблема с X299, так что ответим через 6 лет :) https://xkcd.com/979/
Медленная загрузка вызвана некоторыми преднамеренными задержками, реализованными в прошивке DSDT. Каждый вызов _OSC задерживается на 1-2 секунды.
Метод (_OSC, 4, NotSerialized) // _OSC: возможности операционной системы { CreateDWordField (Arg3, 0x00, CDW1) If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* Устройство моста хоста PCI */)) { CreateDWordField (Arg3, 0x04, CDW2) Если ((Arg2 > 0x02)) { CreateDWordField (Arg3, 0x08, CDW3) } SUPP = CDW2 /* \_SB_.PC00._OSC.CDW2 */ CTRL = CDW3 /* \_SB_.PC00._OSC.CDW3 */ Если ((AHPE || ((SUPP & 0x16) != 0x16))) { CTRL &= 0x1E Спящий режим (0x03E8) } Если ((TBSE != 0x00)) { CTRL &= 0x1E Спящий режим (0x03E8) }
Решение состоит в том, чтобы сократить задержки:
- Извлеките DSDT:
-
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.aml
-
- Декомпилируйте и проанализируйте файл, чтобы адаптировать последующие команды:
-
iasl dsdt.aml
-
- Заменять
Sleep (0x03E8)
(1с)[\x5B\x22\x0B\xE8\x03]
сSleep (0x0064)
(100 мс)[\x5B\x22\x0B\x64\x00]
:-
perl -pe 's#\x5B\x22\x0B\xE8\x03#\x5B\x22\x0B\x64\x00#g' dsdt.aml > dsdt2.aml
-
- Увеличьте версию DSDT, чтобы она имела приоритет над встроенным файлом. Заменять
DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x01072009)
сDefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I ", 0x01072010)
:-
perl -pe 's#\x09\x20\x07\x01#\x10\x20\x07\x01#g' dsdt2.aml > dsdt3.aml
-
- Установите файл:
-
sudo cp dsdt3.aml /boot/dsdt.aml
-
- Установить
/etc/grub.d/01_acpi
из https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1045690-
chmod +x /etc/grub.d/01_acpi
-
- Обновить харч:
-
sudo update-grub
-