VMware Отладка исключения машинной проверки ESXi Фиолетовый экран диагностики
Summary: Как отладить фиолетовый экран диагностики (PSOD) исключения машинной проверки (PSOD) ESXi (MCE) с примером.
Instructions
Описание.
Серверы ESXi могут останавливаться с фиолетовым экраном диагностики (PSOD) из-за ошибок исключения машинной проверки (MCE). Ошибки MCE вызваны аппаратными проблемами.
На фиолетовом экране диагностики MCE отображается несколько элементов. Из них MCi_STATUS register полезен при отладке проблемы.
Сведения о регистрации:
- Переменная
MCi_STATUSРегистр состоит из информации об ошибке проверки машины. - Кассовый аппарат отображается рядом с значком «
S:Как показано в примере ниже:
MC: PCPU18 B:13 S:0xfe20004000011166 M:0x7246040086 A:0x38c989b100 5
Биты и их значение:
| 63 | 62 | 61 | 60 | 59 | 58 | 57 | 53-56 | 38-52 | 32-37 | 16-31 | 0-15 |
| Флаг VALID - Если задан, то информация действительна. | Флаг OVERFLOW — если этот параметр установлен, то может указывать на то, что несколько MCE расположены близко друг к другу. | UNC flag- Если этот параметр установлен, ЦП не сможет исправить ошибку. | Флаг EN | Флаг MISCV — если он задан, то регистр MISC содержит дополнительную информацию. | ADDRV — если задано, то регистр ADDR содержит место возникновения ошибки. | Флаг PCC — если он установлен, это означает, что процессор мог быть поврежден. | Архитектурный, если установлен бит 11, в противном случае «другая информация». | Архитектурный, если установлен бит 10, в противном случае «другая информация». | Другая информация | Код ошибки для конкретного ЦП | Код ошибки проверки компьютера |
Для отладки ошибки используются младшие 16 бит MCi_STATUS регистра. Эти биты указывают на простую или составную ошибку.
Вариант 1: Использование автоматического инструмента
Считыватель ошибок VMware Purple Diagnostic Screen (PSOD)
Вариант 2. Выполнение действий, выполняемых вручную
- Простые ошибки быстро отлаживаются
0000 0000 0000 0000 -- No Error reported to this bank of error-reporting registers. 0000 0000 0000 0001 -- Unclassified - Error has not been classified. 0000 0000 0000 0010 -- Parity error in internal microcode ROM. 0000 0000 0000 0011 -- External error-BINIT# from another processor caused this processor MCE. Happens only if BINIT# observation enabled during power on. 0000 0000 0000 0100 -- Functional redundancy check master/slave error. 0000 0000 0000 0101 -- Internal parity error. 0000 0000 0000 0110 -- SMM handler tried to execute outside the ranges specified by SMRR. 0000 0100 0000 0000 -- Internal timer error. 0000 1110 0000 1011 -- I/O error. 0000 01xx xxxx xxxx -- Internal unclassified error. Atleast one X must be equal to 1.
- Составные ошибки
000F 0000 0000 11LL - Generic Cache Hierarchy error.
000F 0000 0001 TTLL - {TT}TLB{LL}_ERR. TLB errors.
000F 0000 1MMM CCCC - {MMM}_Channel{CCCC}_ERR - Memory controller errors.
000F 0001 RRRR TTLL - {TT}CACHE{LL}_{RRRR}_ERR - Cache Hierarchy errors.
000F 1PPT RRRR IILL - BUS{LL}_{PP}_{RRRR}_{II}_T_ERR - Bus and Interconnect errors.
- F - Флаг формы
0 – Normal Filtering 1 – Corrected Filtering
Фильтрация означает, что некоторые или все последующие исправления к этой записи в этой структуре не проводятся.
- TT - Применяется к 2 и 4 выше.
Указывает тип транзакции:
00 - Instruction 01 - Data 10 - Generic
- LL — применяется к пунктам 1, 2, 4 и 5 выше.
Указывает уровень в иерархии памяти, на котором произошла ошибка.
00 - Level 0 - L0 01 - Level 1 - L1 10 - Level 2 - L2 11 - Generic – LG (It is shown only when processor cannot determine the hierarchy level)
- RRRR — указывает тип действия, связанного с ошибкой. Действия:
0000 - Generic Error - ERR 0001 - Generic Read - RD 0010 - Generic Write - WR 0011 - Data Read - DRD 0100 - Data Write - DWR 0101 - Instruction Fetch - IRD 0110 - Prefetch - PREFETCH 0111 - Eviction - EVICT 1000 - Snoop - SNOOP
- PP (Participation) — описывает роль локального процессора в возникновении ошибки.
00 - SRC - Local processor originated request 01 - RES - Local processor responded to request 10 - OBS - Local processor observed error as third party 11 - Generic
- T (Time-out) - 1 = Время ожидания запроса истекло.
- II (память или ввод-вывод)
00 - M - Memory Access 10 - IO - I/O 01 - Reserved 11 - Other transaction
- Ошибки контроллера памяти — определяются вышеуказанными подполями MMM и CCCC
- MMM — ошибка памяти
000 - GEN - Generic undefined request 001 - RD - Memory read error 010 - WR - Memory write error 011 - AC - Address/Command error 100 - MS - Memory Scrubbing error 101-111 - Reserved
- CCCC — канал с ошибкой
0000-1110 - CHN - Channel number 1111 - Channel not specified
Ниже приведен пример анализа фиолетового диагностического снимка экрана MCE:
- Запишите
MCi_STATUSрегистрового значения. Вот оно:
0xfe20004000011166.
- Преобразуйте его в двоичный код:
1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
- Возьмем младшие 16 бит
MCi_STATUSрегистрировать:
0001 0001 0110 0110
Сравните это с составными ошибками. В данном случае это ошибка иерархии кэша (тип 4).
- Примените значения:
F = 1 RRRR = 0110 – Prefetch TT = 01 – Transaction type - Data LL = 10 – Level 2 cache
Заключение:
- По-видимому, фиолетовый экран диагностики появился при выполнении операции предварительной выборки некоторых данных в кэше L2 процессора.
- Таким образом, проблема может быть связана с кэшем второго уровня процессора.
- Поэтому сначала необходимо заменить ЦП, а затем проверить, устранена ли проблема. Если проблема возникнет снова, материнскую плату можно заменить.