Найти в Дзене

Новая версия биос для Machinist X99 D8 Max! Частичный фикс AER ошибок

Решил переустановить систему с Proxmox VE 8.2 и raid1 mdadm на Proxmox VE 8.3 с raid1 zfs на пару NVME. Все прошло гладко. Но старая проблема не ушла. Логи были забиты AER-сообщениями. Изредка случались даже зависания (до просмотра логов даже подумал на ОЗУ). AER - Advanced Error Reporting. Относится к PCI Express и сигнализирует об ошибках на шине/устройствах. Может проявлять активность в логах как из-за неправильных настроек шины и чипсета, неудачной трассировки линий материнской платы, грязных пяточков процессора/сокета, так и прошивки устройств / их неисправности или просто при плохом контакте в слоте. В общем причин может быть много. В моем же случае особую нелюбовь вызвал NVME WD SN730.
Доходило до полных зависаний сервера из-за спама в логах.
Замена на другой китайский NVME в свое время значительно снизила количество ошибок. Зависания пропали. После замены диска сервер проработал около полугода. Пришло время установки еще 4х NVME. А у x99 с ними, как я успел понять, все не очень
Оглавление

Решил переустановить систему с Proxmox VE 8.2 и raid1 mdadm на Proxmox VE 8.3 с raid1 zfs на пару NVME. Все прошло гладко.

Но старая проблема не ушла. Логи были забиты AER-сообщениями. Изредка случались даже зависания (до просмотра логов даже подумал на ОЗУ).

Сразу небольшая ремарка про AER для тех, кто не в теме

AER - Advanced Error Reporting. Относится к PCI Express и сигнализирует об ошибках на шине/устройствах.

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

В общем причин может быть много.

В моем же случае особую нелюбовь вызвал NVME WD SN730.
Доходило до полных зависаний сервера из-за спама в логах.
Замена на другой китайский NVME в свое время значительно снизила количество ошибок. Зависания пропали.

Спам. Откуда и что с ним делать

После замены диска сервер проработал около полугода. Пришло время установки еще 4х NVME. А у x99 с ними, как я успел понять, все не очень хорошо.

Установил 4 NVME Samsung PM1A и консоль стало заваливать ошибками с новой силой.

Одним из неприятных моментов было то, что из-за постоянного потока ошибок терминалом было невозможно пользоваться.

Приходилось прописывать вслепую dmesg -n 1 , чтобы можно было видеть что вводишь и самое важное - видеть результат.

Думаю, лучше показать, насколько забиты:

Jan 26 22:33:12 AES kernel: pcieport 0000:00:03.1: AER: TLP Header: 34000000 05000010 00000000 80008000
Jan 26 22:33:12 AES kernel: pcieport 0000:00:03.1: AER: device recovery successful
Jan 26 22:33:12 AES kernel: pcieport 0000:00:03.1: AER: Multiple Uncorrectable (Non-Fatal) error message received from 0000:00:03.1

и так еще 236 раз за одну секунду!!!

Как решение рекомендуют отключение ASPM в биосе и/или через параметры ядра pcie_aspm=off и/или pci=nommconf как возможное решение. Не помогало.

Кроме совета: "заменить железо на какое-нибудь другое, без x99" был и банальный: "обновите биос".

Но как его обновить, если последняя версия 00.02?!

Нового нет. А если сделаю?

Начал разбираться в теме. Самым простым и безопасным выглядело обновление модулей в оригинальной прошивке.

Под плату существует модифицированная версия с разблокированными таймингами и прочим. Но мне ничего и того не нужно. В моей сборке навряд ли получу ощутимый прирост производительности, к тому же не хочется приобретать очередные риски стабильности работы.
В общем посчитал, что лучше модифицировать оригинал.

Наткнулся на статью по улучшению биоса на overclockers.ru, но там практически все ссылки оказались уже нерабочими.

Ладно, отыскал сайт-источник [Руководство по инструментам+Новости] «UEFI BIOS Updater» (UBU), а после и новые версии модулей, микрокода.

Стал разбираться и пытаться все это свести в что-то единое и осмысленное.

Ах да, чуть не забыл!

У меня ведь в вводных был еще один замечательный момент.
Я имею на руках еще одну материнскую плату (мертворожденную).
С завода на ней, неподалеку от разъема питания, есть межслойное КЗ.
Т.е. биос во флэше можно считать девственно чистым для дампа!
Именно его я и взял за основу.
Продолжаем.

Обновил модули bios:

  • Драйвер Intel RSTe for SATA c 4.5.0.1012 до 4.7.0.1017.
  • Микрокоды до актуальных:
  1. 406F1: 2019-06-18 -> 2021-05-19;
  2. 406F0: 2015-07-02;
  3. 306F2: 2018-04-20 -> 2021-08-11
  4. 306F1: 2013-10-02 -> 2014-01-10.

sSATA и RAID Driver остались прежней версии. Не проверял, т.к. ими не пользуюсь.

Мне был важен 406F1, т.е. пара моих E5 2686v4. Но остальные тоже обновил.

Перепаял флэш-память 25Q128 и, к моему удивлению, все получилось и запустилось с первого раза.

Сразу же я, по ранее сделанным фото, восстановил все пункты настроек в меню биоса и загрузился в ОС.

А это: дата и время, автозапуск после подачи питания, профиль управления куллерами, IIO PCIe, VT-d и т.п. присущее моей конфигурации.

После загрузки системы обнаружил, что ошибок не было. Ни одной!
Я убрал параметры ядра, которыми ранее пытался исправить ошибки, перезагрузился и все так же, в логах нет прошлого спама. Успех!

Тесты и размышления

Да, возможно все дело в микрокоде и могло бы помочь обновление его каждый раз уже после загрузки, прямо из ОС. Подробнее можно почитать, например, здесь.

Но я пошел другим путем и сейчас не могу проверить насколько бы это исправило (и все ли бы) проблемы.

А сейчас хочу поделиться полученным файлом и был бы рад получить обратную связь по методу (параметры ядра/обновление микрокода из ОС/обновление биоса моим дампом), который смог помочь вам.

На момент написания этого абзаца прошло чуть больше пары суток работы с шестью M2 NVME, 8 SATA SSD (через LSI рейд-карту), пары SATA жестких дисков (через RSTe for SATA) и двух видеокарт под ОС Proxmox VE 8.3.
AER-ошибки появлялись, но гораздо реже. Например, на момент написания:

Jan 29 13:54:37 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0
Jan 29 14:36:52 AES kernel: pcieport 0000:00:03.2: AER: Correctable error message received from 0000:00:03.2
Jan 29 14:49:35 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0
Jan 29 16:04:08 AES kernel: pcieport 0000:00:03.2: AER: Correctable error message received from 0000:00:03.2
Jan 29 16:33:25 AES kernel: pcieport 0000:00:03.1: AER: Correctable error message received from 0000:05:00.0
Jan 29 17:58:53 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0
Jan 29 19:01:12 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0

Согласитесь, это гораздо меньше и формат иной :).

Прошло еще 3 дня. В это время NVME активно использовались. Соответственно был выше риск появления сообщений.

Переносились контейнеры и машины с одного рейда в другой, а также через rsync с физически другой машины переносились данные.
На вскидку было около 4ТБ транзакций.
По итогу в среднем 10 сообщений в день с 6 NVME, 8 SATA SSD (через LSI-карту) и 2 SATA HDD, ну и пары видеокарт.

Зависаний или еще чего-то странного тоже не было замечено.

Если решите обновить свой биос моей версией, то помните, что все на ваш страх и риск!

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

Файл обновленного чистого биоса можно скачать с моего сервера.