3

I am working on the Linux Kernel as part of my course homework and this is the information I seek:

In the latest systems, memory is split up into ranks under which which memory is interleaved among the different ranks in a non-contiguous way. This was implemented to increase the speed of processor in accessing the memory. I would like to know if there is any command in Linux which when executed gives us any information about how the memory is being split up into ranks. I have tried using the following command

    sudo dmidecode --type memory

but the above command showed information about hardware but not whether memory is being interleaved or not. Could anyone please let me know if there is any command that can show me such info? If such command doesn't exist, could you please let me know which part of the code I can refer for the implementation of memory interleaving in Linux Kernel?

Thank you.

Srikanth Kandalam
  • 965
  • 3
  • 15
  • 26
  • Did you try to read memory control's higher bit address decoding schedule ? As in memory interleaving, the higher address bit is decoded in non-sequencial order. – Houcheng Mar 17 '14 at 01:16

1 Answers1

0

if bios setup smbios structure correctly, you should able to figure out interleaving setting from DMI type 20 (Memory Device mapped Address) structure. E.g For 4 way interleaving case, DIMM 0 of channel 0, 1, 2, 3 should have same mapped address.

get_hm
  • 1