mlx5_core: Command failed with status / firmware error — Решение ошибок Mellanox
Архитектура ошибки и симптомы сбоя
Сообщение «mlx5_core: Command failed with status 0x... / firmware error» регистрируется ядерным драйвером mlx5_core для высокопроизводительных адаптеров NVIDIA Mellanox ConnectX-4, ConnectX-5, ConnectX-6, ConnectX-7 (10G/25G/40G/100G/200G/400G Ethernet и InfiniBand). Ошибка указывает на то, что команда управления (Command Interface HCA), отправленная драйвером ядру сетевого процессора Mellanox (Firmware), завершилась аппаратным статусом ошибки (например, 0x01: Bad Parameter, 0x04: Internal Error, 0x05: Resource Busy) либо встроенная прошивка адаптера зависла (Firmware Syndromes).
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| mlx5_core | Mellanox Core Driver | Унифицированный ядерный драйвер для контроллеров ConnectX. |
| Status 0x04 (Internal Error) | FW Exception | Внутреннее фатальное исключение в микрокоде сетевого адаптера Mellanox. |
| Syndrome 0x... | Hex Error Code | Детальный код аппаратного синдрома (ошибки валидации дескрипторов WQE/CQE). |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Проверка статуса контроллера через утилиты MFT (Mellanox Firmware Tools)
# Установка пакета инструментов диагностики Mellanox:
sudo apt-get install mstflint || sudo dnf install mstflint
# Проверка PCI-адреса и текущей версии FW:
sudo mstflint -d 0000:03:00.0 q
# Просмотр системного дампа ошибок прошивки адаптера (FW Tracer):
sudo dmesg | grep -i "mlx5"
sudo devlink health show pci/0000:03:00.0Сценарий 2: Обновление прошивки адаптера Mellanox ConnectX
Устаревшие версии прошивок ConnectX-4/5 вызывают сбои команд при работе с RoCEv2 и SR-IOV:
# Загрузка актуального PSID бинарника с сайта NVIDIA Networking и прошивка:
sudo mstflint -d 0000:03:00.0 -i fw-ConnectX5-rel.bin burn
# Принудительный сброс прошивки без перезагрузки сервера:
sudo mstflint -d 0000:03:00.0 bСценарий 3: Восстановление работоспособности через devlink health recover
# Запуск автоматического самовосстановления подсистемы ядра devlink:
sudo devlink health recover pci/0000:03:00.0 reporter fw_fatal
# Отключение агрессивного PCI Relaxed Ordering при сбоях шины:
# Добавьте параметр в /etc/modprobe.d/mlx5.conf:
options mlx5_core pci_relaxed_ordering=0ITSTM проводит аудит высокоскоростных сетевых сред (25G-400G), оптимизацию RDMA/RoCEv2 под AI/ML кластеры и обновление прошивок Mellanox/NVIDIA.
Частые вопросы (FAQ)
Что такое PSID в сетевых картах Mellanox?
PSID (Parameter Set ID) — это уникальный 16-символьный идентификатор аппаратной ревизии платы и ее конфигурации. Прошивать адаптер можно строго тем файлом FW, который соответствует его точному PSID.
Можно ли выполнить перезапуск прошивки Mellanox без перезагрузки всего сервера?
Да, утилита mlxfwreset из пакета MFT позволяет выполнить горячий сброс (PCI Level Reset) адаптера: sudo mlxfwreset -d 0000:03:00.0 -l 3 reset.
Почему ошибка mlx5 Command failed часто возникает при настройке Kubernetes/SR-IOV?
При создании большого числа Virtual Functions (VF) драйвер mlx5 может исчерпать внутренние аппаратные ресурсы контекстов ICM (Interface Context Memory). Требуется увеличить лимиты ресурсов через mlxconfig.
Как просмотреть аппаратные счетчики ошибок RoCE/InfiniBand?
Выполните команду: sudo perfquery или просмотрите счетчики напрямую в /sys/class/infiniband/mlx5_0/ports/1/counters/.