Linux – dmidecode weird total/data width

dmidecodeecclinux

I am getting strange outputs from my workstation, which has ECC RAM.

Supposedly, from what I read, the data width should be at 64 bits and the total width at 72. But… data width shows as 64 and total width as 128.

Is this a problem with my configuration?

For reference, my motherboard is a MSI C236A WORKSTATION.

Handle 0x0042, DMI type 17, 40 bytes
Memory Device
    Array Handle: 0x0041
    Error Information Handle: Not Provided
    Total Width: 128 bits
    Data Width: 64 bits
    Size: 8192 MB
    Form Factor: DIMM
    Set: None
    Locator: ChannelA-DIMM0
    Bank Locator: BANK 0
    Type: DDR4
    Type Detail: Synchronous
    Speed: 2133 MHz
    Manufacturer: Micron
    Serial Number: 18221400
    Asset Tag: 9876543210
    Part Number: 18ASF1G72AZ-2G1B1   
    Rank: 2
    Configured Clock Speed: 2133 MHz
    Minimum Voltage: Unknown
    Maximum Voltage: Unknown
    Configured Voltage: 1.2 V

Thanks,

Eduardo

Best Answer

You're right that you should be seeing 72 bits in that output, as DJ Bernstein describes, and as I quote from this concise answer on StackExchange:

  • Data width = 64 (8 banks * 8 bits)
  • Total width = 72 (9 banks * 8 bits)
  • The extra bank indicates that ECC is active.

Your problem is almost definitely a BIOS bug. For my ASRock E3C224D2I, here's what dmidecode -t memory | grep Total shows for an old BIOS (P2.00) which incorrectly reports the data:

Total Width: 128 bits

If I update the BIOS to P3.50 I get:

Total Width: 72 bits

There's a thread on the FreeNAS board which alludes to this, but I haven't been able to figure out what the underlying detailed rationale for the bug is.