ipmiutil is an easy to use set of IPMI server management utilities. It can get/set sensor readings & thresholds, automate SEL management, do SOL console, etc. Supports Linux, Windows, BSD, Solaris, MacOSX. The only IPMI project tool that runs natively on Windows. See http://ipmiutil.sf.net for rpms, etc. (formerly called panicsel). It can run driverless in Linux for use on boot media or embedded environments.
BSD 3-Clause "New" or "Revised" License
33
stars
5
forks
source link
[supermicro] Disable DIMM location decoding from SMBIOS for local SEL… #3
This change is to disable DIMM location decoding from SMBIOS for local (imbdrv/ipmidrv) SEL query
There is a problem for DIMM location string decoded from SEL on Supermicro hardware (at least for vendor = 10876)
Problem summary:
If SEL log query performed locally (is_remote() == FALSE) decode_mem_supermicro will try to get Bank Locator/Device Locator strings from SMBIOS Type 17 records using get_MemDesc routine:
[Memory Device (Type 17) - Length 34 - Handle 002dh]
Memory Error Info Handle [Not Provided]
Total Width 72 bits
Data Width 64 bits
Size 16384MB
Form Factor 09h - DIMM
Device Set [None]
Device Locator P1-DIMMA2 <------ get_MemDesc tries to retrieve these strings from SMBIOS
Bank Locator P0_Node0_Channel0_Dimm1 <------ get_MemDesc tries to retrieve these strings from SMBIOS
Memory Type 18h - Specification Reserved
Type Detail 2000h -
Speed 1600MHz
Manufacturer Samsung
Serial Number
Asset Tag Number
Part Number M393B2G70QH0-YK0
However get_MemDesc return invalid string values, (at least for vendor = 10876 (Supermicro)), this can lead to confusion as wrong DIMM location reported by SEL, and user can replace the wrong dimm based on SEL output
This change is to disable decoding using SMBIOS in decode_mem_supermicro and return constructed string using logic available in decode_mem_supermicro itself i.e. P2_DIMME2
It figures that SuperMicro would mismatch their BIOS and Firmware indexes for the DIMMs. Regardless, we need to remove this for SuperMicro, at least until SuperMicro can get their act together.
This change is to disable DIMM location decoding from SMBIOS for local (imbdrv/ipmidrv) SEL query There is a problem for DIMM location string decoded from SEL on Supermicro hardware (at least for vendor = 10876)
Problem summary:
If SEL log query performed locally (is_remote() == FALSE) decode_mem_supermicro will try to get Bank Locator/Device Locator strings from SMBIOS Type 17 records using get_MemDesc routine:
However get_MemDesc return invalid string values, (at least for vendor = 10876 (Supermicro)), this can lead to confusion as wrong DIMM location reported by SEL, and user can replace the wrong dimm based on SEL output
This change is to disable decoding using SMBIOS in decode_mem_supermicro and return constructed string using logic available in decode_mem_supermicro itself i.e. P2_DIMME2
To illustrate the problem:
consider below RAW SEL on Supermicro hardware:
DIMM location decoded incorrectly via get_MemDesc for such data: