Контроллер SATA, по-видимому, замедляет компиляцию ядра (8,48 минут против 1,30 минут при отключенном жестком диске SATA)

Контроллер SATA, по-видимому, замедляет компиляцию ядра (8,48 минут против 1,30 минут при отключенном жестком диске SATA)

Ладно, это странно.

Когда к моему блоку подключено устройство SATA, такое как жесткий диск или DVD-RW, компиляция ядра Linux (5.12.4) занимает около 8-9 минут на моем Ryzen 5950x на Samsung NVME 970 Evo и 16 ГБ ОЗУ @ 3200, все установлено на материнской плате AsRock b550 Taichi. Вращающийся жесткий диск просто подключен к порту SATA на материнской плате, и ни один из разделов не смонтирован.

Когда я физически отключаю/выключаю жесткий диск из порта SATA материнской платы, точно такой же процесс (чистая компиляция, начиная с нового архива) занимает около 1,30 минуты.

Такое же замедление происходит даже при подключении DVD-RW, но не происходит при подключении SSD к порту SATA.

Я в полном недоумении. Мне кажется, что контроллер SATA на чипсете каким-то образом влияет на скорость работы процессора при подключении устаревших устройств.

Вот команды, которые я запускаю для компиляции ядра:

tar xf linux-5.8.10.tar.gz
cd linux-5.8.10
cp /boot/config-`uname -r` .config
yes '' | make oldconfig
make clean
time make -j32 LOCALVERSION=-custom

Я использую Ubuntu 20.04. Я отключил свой HD и теперь использую его через USB, чтобы избежать этого замедления.

решение1

У вас может быть плохой кабель SATA, который принимает радиочастотные помехи от других компонентов внутри корпуса или иным образом генерирует ложные сигналы на соединении SATA. Это постоянно заставляет контроллер SATA и/или ОС проверять состояние устройства, мешая трафику на шинах данных материнской платы и/или тратя время ЦП.

В таком случае я бы ожидал, что ядро ​​выдаст множество сообщений об ошибках в буфер сообщений ядра и/или системные журналы. Используйте команду dmesgдля проверки сообщений ядра; посмотрите, есть ли какие-либо сообщения об ошибках, связанные с SATA.

решение2

Я решил эту проблему, обновив BIOS/EFI с версии 1.80 до 1.90 (последняя на момент написания статьи), которую можно получить по адресу asrock.com/MB/AMD/B550%20Taichi/index.asp#BIOS

Связанный контент