Linux – Can’t get dual-channel memory status from Linux — why

dual-channellinuxmemory

I have a slot A3+ motherboard (Gigabyte ATX GA990ZA-UD3-R5) with an AMD FX-8320E CPU and two 8Gb memory sticks (identical, bought together as a kit).
I followed the instructions on the manual and installed the memory so as to use dual-channel memory, but as far as I can see I'm not able to query the system about the memory (using Linux):

lshw does not say anything:

$ sudo lshw -C memory
  *-memory                
       description: System memory
       physical id: 0
       size: 15GiB

and dmidecode says nothing about interleaving:

$ sudo dmidecode --type memory
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x0008, DMI type 5, 24 bytes
Memory Controller Information
    Error Detecting Method: 64-bit ECC
    Error Correcting Capabilities:
        None
    Supported Interleave: One-way Interleave
    Current Interleave: One-way Interleave
    Maximum Memory Module Size: 2048 MB
    Maximum Total Memory Size: 8192 MB
    Supported Speeds:
        70 ns
        60 ns
    Supported Memory Types:
        DIMM
        SDRAM
    Memory Module Voltage: 3.3 V
    Associated Memory Slots: 4
        0x0009
        0x000A
        0x000B
        0x000C
    Enabled Error Correcting Capabilities:
        None

Handle 0x0009, DMI type 6, 12 bytes
Memory Module Information
    Socket Designation: DIMM0
    Bank Connections: 0 1
    Current Speed: 60 ns
    Type: DIMM SDRAM
    Installed Size: 536870912 MB (Single-bank Connection)
    Enabled Size: 536870912 MB (Single-bank Connection)
    Error Status: OK

Handle 0x000A, DMI type 6, 12 bytes
Memory Module Information
    Socket Designation: DIMM1
    Bank Connections: 2 3
    Current Speed: 60 ns
    Type: DIMM SDRAM
    Installed Size: 536870912 MB (Single-bank Connection)
    Enabled Size: 536870912 MB (Single-bank Connection)
    Error Status: OK

Handle 0x000B, DMI type 6, 12 bytes
Memory Module Information
    Socket Designation: DIMM2
    Bank Connections: 4 5
    Current Speed: 60 ns
    Type: DIMM SDRAM
    Installed Size: 536870912 MB (Single-bank Connection)
    Enabled Size: 536870912 MB (Single-bank Connection)
    Error Status: OK

Handle 0x000C, DMI type 6, 12 bytes
Memory Module Information
    Socket Designation: DIMM3
    Bank Connections: 6 7
    Current Speed: 60 ns
    Type: DIMM SDRAM
    Installed Size: 536870912 MB (Single-bank Connection)
    Enabled Size: 536870912 MB (Single-bank Connection)
    Error Status: OK

Handle 0x002C, DMI type 16, 23 bytes
Physical Memory Array
    Location: System Board Or Motherboard
    Use: System Memory
    Error Correction Type: None
    Maximum Capacity: 32 GB
    Error Information Handle: Not Provided
    Number Of Devices: 4

Handle 0x002E, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x002C
    Error Information Handle: Not Provided
    Total Width: Unknown
    Data Width: 64 bits
    Size: No Module Installed
    Form Factor: DIMM
    Set: None
    Locator: Node0_Dimm0
    Bank Locator: Node0_Bank0
    Type: Unknown
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Dimm0_Manufacturer
    Serial Number: Dimm0_SerNum
    Asset Tag: Dimm0_AssetTag
    Part Number: Dimm0_PartNum
    Rank: Unknown
    Configured Clock Speed: Unknown

Handle 0x0030, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x002C
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 8192 MB
    Form Factor: DIMM
    Set: None
    Locator: Node0_Dimm1
    Bank Locator: Node0_Bank0
    Type: DDR3
    Type Detail: Synchronous Unbuffered (Unregistered)
    Speed: 933 MHz
    Manufacturer: Kingston          
    Serial Number: 4D384FFC    
    Asset Tag: Dimm1_AssetTag
    Part Number: KHX1866C10D3/
    Rank: 2
    Configured Clock Speed: 933 MHz

Handle 0x0032, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x002C
    Error Information Handle: Not Provided
    Total Width: Unknown
    Data Width: 64 bits
    Size: No Module Installed
    Form Factor: DIMM
    Set: None
    Locator: Node0_Dimm2
    Bank Locator: Node0_Bank0
    Type: Unknown
    Type Detail: Synchronous
    Speed: Unknown
    Manufacturer: Dimm2_Manufacturer
    Serial Number: Dimm2_SerNum
    Asset Tag: Dimm2_AssetTag
    Part Number: Dimm2_PartNum
    Rank: Unknown
    Configured Clock Speed: Unknown

Handle 0x0034, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x002C
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 8192 MB
    Form Factor: DIMM
    Set: None
    Locator: Node0_Dimm3
    Bank Locator: Node0_Bank0
    Type: DDR3
    Type Detail: Synchronous Unbuffered (Unregistered)
    Speed: 933 MHz
    Manufacturer: Kingston          
    Serial Number: 6B39AD31    
    Asset Tag: Dimm3_AssetTag
    Part Number: KHX1866C10D3/
    Rank: 2
    Configured Clock Speed: 933 MHz

(The memory sticks have 1866MHz speed, I'm not sure why it shows up as 933MHz in dmidecode. BIOS reports it as 1866MHz.)

This motherboard does not show POST messages. It shows a splash screen, then offers to enter setup. After that, it prints nothing until the bootloader steps in. I've searched through all setup options, and I also can't see anything related to dual-channel being activated or not.

I'm not sure if this is relevant, but I have IOMMU enabled in BIOS, and I pass the option iommu=soft to the Linux kernel on boot.

How can I be sure if I have dual-channel working, and also, why did lshw and dmidecode not inform about dual-channel?

Best Answer

Try this:

dmidecode -t 17 |grep Channel

For dual channel, you should see your channels A/B as:

Locator: ChannelA-DIMM0
Locator: ChannelA-DIMM1
Locator: ChannelB-DIMM0
Locator: ChannelB-DIMM1
Related Question