VMware: Debugowanie wyjątku kontroli maszyny ESXi Fioletowy ekran diagnostyczny
Summary: Debugowanie fioletowego ekranu diagnostycznego (PSOD) wyjątku kontroli maszyny ESXi (MCE) na przykładzie.
Instructions
Description:
Serwery ESXi mogą się zatrzymywać z fioletowym ekranem diagnostycznym (PSOD) z powodu błędów wyjątku sprawdzania maszyny (MCE). Błędy MCE są spowodowane problemami sprzętowymi.
Fioletowy ekran diagnostyczny MCE wyświetla wiele elementów. Spośród nich MCi_STATUS register jest przydatny podczas debugowania problemu.
Szczegóły rejestracji:
- Plik
MCi_STATUSRejestr składa się z informacji o błędzie sprawdzania maszyny. - Rejestr jest wyświetlany obok "
S:" Jak pokazano na poniższym przykładzie:
MC: PCPU18 B:13 S:0xfe20004000011166 M:0x7246040086 A:0x38c989b100 5
Bity i ich znaczenie:
| 63 | 62 | 61 | 60 | 59 | 58 | 57 | 53-56 | 38-52 | 32-37 | 16-31 | 0-15 |
| Flaga VALID - Jeśli jest ustawiona, informacja jest prawidłowa. | Flaga OVERFLOW — jeśli jest ustawiona, może to oznaczać, że w pobliżu wystąpiło wiele MCE. | Flaga UNC- Jeśli jest ustawiona, procesor nie może naprawić błędu. | Flaga EN | Flaga MISCV — jeśli jest ustawiona, to rejestr MISC zawiera więcej informacji. | ADDRV — jeśli ta opcja jest ustawiona, rejestr ADDR zawiera miejsce, w którym wystąpił błąd. | Flaga PCC — jeśli ta opcja jest ustawiona, oznacza to, że procesor mógł zostać uszkodzony. | Architektoniczne, jeśli ustawiony jest bit 11, w przeciwnym razie "inne informacje". | Architektoniczne, jeśli ustawiony jest bit 10, w przeciwnym razie "inne informacje". | Inne informacje | Kod błędu procesora specyficzny dla modelu | Kod błędu sprawdzania maszyny |
Aby debugować błąd, dolne 16 bitów MCi_STATUS rejestr są ważne. Te bity wskazują na błąd prosty lub złożony.
Opcja 1: Korzystanie z narzędzia automatycznego
Czytnik błędów VMware Purple Diagnostic Screen (PSOD)
Opcja 2: Wykonywanie czynności ręcznych
- Proste błędy można szybko debugować
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.
- Błędy złożone
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 - Flaga formy
0 – Normal Filtering 1 – Corrected Filtering
Filtrowanie oznacza, że niektóre lub wszystkie późniejsze korekty tego wpisu w tej strukturze nie są księgowane.
- TT — dotyczy punktów 2 i 4 powyżej.
Wskazuje typ transakcji:
00 - Instruction 01 - Data 10 - Generic
- LL — dotyczy punktów 1, 2, 4 i 5 powyżej.
Wskazuje poziom w hierarchii pamięci, w którym wystąpił błąd.
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 — wskazuje typ akcji skojarzonej z błędem. Są to następujące działania:
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 (uczestnictwo) — opisuje rolę lokalnego procesora w błędzie.
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 = upłynął limit czasu żądania.
- II (Pamięć lub Wejście/wyjście)
00 - M - Memory Access 10 - IO - I/O 01 - Reserved 11 - Other transaction
- Błędy kontrolera pamięci — zdefiniowane przez powyższe pola podrzędne MMM i CCCC
- MMM — błąd pamięci
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 - Kanał z błędem
0000-1110 - CHN - Channel number 1111 - Channel not specified
Oto przykład analizy fioletowego zrzutu ekranu diagnostycznego MCE:
- Zapisz
MCi_STATUSwartość rejestru. Oto ona:
0xfe20004000011166.
- Konwertuj go na binarny:
1111 1110 0010 0000 0000 0000 0100 0000 0000 0000 0000 0001 0001 0001 0110 0110
- Weźmy dolne 16 bitów
MCi_STATUSrejestrować:
0001 0001 0110 0110
Porównaj to z błędami złożonymi. W takim przypadku wydaje się, że jest to błąd hierarchii pamięci podręcznej (typ 4).
- Zastosuj wartości:
F = 1 RRRR = 0110 – Prefetch TT = 01 – Transaction type - Data LL = 10 – Level 2 cache
Wniosek:
- Wygląda na to, że fioletowy ekran diagnostyczny został wyświetlony podczas operacji wstępnego pobierania niektórych danych z pamięci podręcznej L2 procesora.
- Może to być problem z pamięcią podręczną L2 procesora.
- Dlatego najpierw należy wymienić procesor, a następnie sprawdzić, czy problem został rozwiązany. Jeśli problem pojawi się ponownie, płytę główną można wymienić.