# NVIDIA Bug Report Parser Парсер для файлов nvidia-bug-report, генерируемых скриптом `nvidia-bug-report.sh`. ## Назначение Этот парсер обрабатывает диагностические логи NVIDIA драйверов и извлекает: - Информацию о модулях памяти (из dmidecode) - Информацию о GPU устройствах - Версию NVIDIA драйвера ## Формат файла - Имя файла: `nvidia-bug-report-*.log.gz` - Формат: Gzip-сжатый текстовый файл - Генерируется: `nvidia-bug-report.sh` скриптом ## Confidence Score **85** - высокий приоритет для файлов nvidia-bug-report ## Извлекаемые данные ### 1. System Information (из dmidecode) Информация о сервере: - **Serial Number**: Серийный номер сервера (например, 2KD501412) - **UUID**: Уникальный идентификатор системы (например, 2e4054bc-1dd2-11b2-0284-6b0a21737950) - **Manufacturer**: Производитель сервера - **Product Name**: Модель сервера - **Version**: Версия системы ### 2. CPU Information (из dmidecode) Для каждого процессора извлекается: - **Model**: Модель процессора (например, Intel(R) Xeon(R) Platinum 8480+) - **Serial Number**: Серийный номер (например, 5DB0D6C0DD30ABD8) - **Core Count**: Количество ядер (например, 56) - **Thread Count**: Количество потоков (например, 112) - **Max Speed**: Максимальная частота (например, 3800 MHz) - **Current Speed**: Текущая частота (например, 2000 MHz) Пример: ``` Socket 0: Intel(R) Xeon(R) Platinum 8480+ Serial Number: 5DB0D6C0DD30ABD8 Cores: 56, Threads: 112 Frequency: 2000 MHz (Max: 3800 MHz) ``` ### 3. Memory Modules (из dmidecode) Для каждого модуля памяти извлекается: - **Slot/Location**: Например, CPU0_C0D0 - **Size**: Размер в GB (например, 64 GB) - **Type**: Тип памяти (DDR5, DDR4, etc.) - **Manufacturer**: Производитель (Hynix, Samsung, Micron, etc.) - **Part Number**: P/N модуля (например, HMCG94AGBRA179N) - **Serial Number**: S/N модуля (например, 80AD0224322B3834E6) - **Speed**: Max/Current скорость (например, 5600/4400 MHz) - **Ranks**: Количество рангов Пример: ``` Slot: CPU0_C0D0 Size: 64 GB Type: DDR5 Manufacturer: Hynix Part Number: HMCG94AGBRA179N Serial Number: 80AD0224322B3834E6 Speed: 5600 MT/s (configured: 4400 MT/s) Ranks: 2 ``` ### 4. Power Supplies (из dmidecode) Для каждого блока питания извлекается: - **Location**: Позиция (например, PSU0, PSU1) - **Manufacturer**: Производитель (например, DELTA, Great Wall) - **Model Part Number**: Модель БП (например, V0310DT000000000) - **Serial Number**: Серийный номер (например, DGPLV251500LZ) - **Max Power Capacity**: Максимальная мощность (например, 2700 W) - **Revision**: Версия прошивки (например, 00.01.04) - **Status**: Статус (например, Present, OK) Пример: ``` PSU0: V0310DT000000000 (DELTA) Serial Number: DGPLV251500LZ Power: 2700 W, Revision: 00.01.04 Status: Present, OK ``` ### 5. Network Adapters (из lspci) Для каждого сетевого адаптера (Ethernet, Network, InfiniBand) извлекается: - **Model**: Полное название модели из VPD (например, "NVIDIA ConnectX-7 HHHL Adapter card, 400GbE / NDR IB (default mode), Single-port OSFP, PCIe 5.0 x16") - **Location**: PCI BDF адрес (например, 0000:0e:00.0) - **Slot**: Физический слот (например, 108) - **Part Number**: P/N адаптера (например, MCX75310AAS-NEAT) - **Serial Number**: S/N адаптера (например, MT2430600249) - **Vendor**: Производитель (Mellanox, NVIDIA) - **Vendor ID / Device ID**: PCI идентификаторы (например, 15b3:1021) - **Port Count**: Количество портов (определяется из модели: Dual-port = 2, Single-port = 1) - **Port Type**: Тип портов (QSFP56, OSFP, SFP+) Пример: ``` 0000:0e:00.0: NVIDIA ConnectX-7 HHHL Adapter card, 400GbE / NDR IB (default mode), Single-port OSFP Slot: 108 P/N: MCX75310AAS-NEAT S/N: MT2430600249 Ports: 1 x OSFP ``` ### 6. GPU Devices Для каждого GPU извлекается: - **Model**: Модель GPU (например, NVIDIA H100 80GB HBM3) - **BDF (Bus:Device.Function)**: PCI адрес (например, 0000:0f:00.0) - **UUID**: Уникальный идентификатор GPU (например, GPU-64674e47-e036-c12a-3e8d-55a2a9ac8db3) - **Video BIOS**: Версия BIOS видеокарты (например, 96.00.99.00.01) - **IRQ**: Прерывание (например, 17) - **Bus Type**: Тип шины (PCIe) - **DMA Size**: Размер DMA (например, 52 bits) - **DMA Mask**: Маска DMA (например, 0xfffffffffffff) - **Device Minor**: Номер устройства (например, 0) - **Manufacturer**: NVIDIA Пример: ``` 0000:0f:00.0: NVIDIA H100 80GB HBM3 UUID: GPU-64674e47-e036-c12a-3e8d-55a2a9ac8db3 Video BIOS: 96.00.99.00.01 IRQ: 17 ``` ### 7. Events - **Memory Configuration**: Сводка по модулям памяти (количество, производители, общий размер) - **GPU Detection**: Обнаруженные GPU устройства - **Driver Version**: Версия NVIDIA драйвера ## Пример использования ```bash # Запуск с nvidia-bug-report файлом ./logpile --file nvidia-bug-report-2KD501412.log.gz # Веб-интерфейс будет доступен на http://localhost:8082 ``` ## Пример вывода ``` ✓ Detected vendor: NVIDIA Bug Report Parser ✓ CPUs: 2 ✓ Memory: 32 modules ✓ Power Supplies: 8 ✓ GPUs: 8 ✓ Network Adapters: 12 System Information: Serial Number: 2KD501412 UUID: 2e4054bc-1dd2-11b2-0284-6b0a21737950 Version: 0 CPU Information: Socket 0: Intel(R) Xeon(R) Platinum 8480+ S/N: 5DB0D6C0DD30ABD8, Cores: 56, Threads: 112 Socket 1: Intel(R) Xeon(R) Platinum 8480+ S/N: 5DB017C05685B3ED, Cores: 56, Threads: 112 Power Supplies: PSU0: V0310DT000000000 (DELTA) S/N: DGPLV251500LZ Power: 2700 W, Revision: 00.01.04 Status: Present, OK PSU1: V0310DT000000000 (DELTA) S/N: DGPLV251500GY Power: 2700 W, Revision: 00.01.04 Status: Present, OK [... 6 more PSUs ...] Memory Modules: CPU0_C0D0: 64 GB, Hynix P/N: HMCG94AGBRA179N, S/N: 80AD0224322B3834E6 Type: DDR5, Speed: 4400/5600 MHz [... 31 more modules ...] Network Adapters: 12 devices 0000:0e:00.0: NVIDIA ConnectX-7 HHHL Adapter card, 400GbE / NDR IB (default mode), Single-port OSFP Slot: 108 P/N: MCX75310AAS-NEAT S/N: MT2430600249 Ports: 1 x OSFP 0000:1f:00.0: ConnectX-6 Dx EN adapter card, 100GbE, Dual-port QSFP56 Slot: 12 P/N: MCX623106AN-CDAT S/N: MT2434J00PCD Ports: 2 x QSFP56 [... 10 more adapters ...] GPUs: 8 devices 0000:0f:00.0: NVIDIA H100 80GB HBM3 UUID: GPU-64674e47-e036-c12a-3e8d-55a2a9ac8db3 Video BIOS: 96.00.99.00.01 IRQ: 17 0000:34:00.0: NVIDIA H100 80GB HBM3 UUID: GPU-fa796345-c23a-54aa-1b67-709ac2542852 Video BIOS: 96.00.99.00.01 IRQ: 16 [... 6 more GPUs ...] ``` ## Версионирование **Текущая версия парсера:** 1.0.0 ### История версий - **1.0.0** - Первоначальная версия с парсингом System Info, CPU, Memory, PSU, GPU, Network Adapters и Driver ## Структура данных Парсер использует следующие секции в bug report: 1. **dmidecode output (System Information)** - для извлечения информации о сервере 2. **dmidecode output (Processor Information)** - для извлечения информации о CPU 3. **dmidecode output (Memory Device)** - для извлечения информации о памяти 4. **dmidecode output (System Power Supply)** - для извлечения информации о блоках питания 5. **lspci -vvv output (Ethernet/Network/Infiniband controller)** - для извлечения информации о сетевых адаптерах 6. **lspci VPD (Vital Product Data)** - для извлечения P/N, S/N и модели сетевых адаптеров 7. **/proc/driver/nvidia/gpus/.../information** - для детальной информации о GPU 8. **NVRM version** - для версии драйвера ## Известные ограничения 1. Ошибки и предупреждения из логов пока не извлекаются 2. Некоторые специфичные характеристики GPU (температура, утилизация) не парсятся 3. Информация о производительности и метрики GPU требуют парсинга других секций ## Расширение Для добавления новых возможностей: 1. **Ошибки драйвера**: Парсить секции с ошибками NVIDIA драйвера 2. **nvidia-smi output**: Извлекать детальную информацию из вывода nvidia-smi (температура, утилизация) 3. **GPU производительность**: Парсить метрики производительности и использования памяти GPU 4. **PCIe информация**: Извлекать детали о PCIe конфигурации (скорость линка, ширина) ## Пример структуры файла ``` Start of NVIDIA bug report log file nvidia-bug-report.sh Version: 34275561 Date: Thu Jul 17 18:18:18 EDT 2025 [... system info ...] Memory Device Data Width: 64 bits Size: 64 GB Form Factor: DIMM Locator: CPU0_C0D0 Type: DDR5 Speed: 5600 MT/s Manufacturer: Hynix Serial Number: 80AD0224322B3834E6 Part Number: HMCG94AGBRA179N [... more memory modules ...] *** /proc/driver/nvidia/./gpus/0000:0f:00.0/power [... GPU info ...] ```