All right, it Science Time, Science Sunday
I’ve conducted several reboots and hardware re-configurations, while recording the output of
dmidecode, each time. My OS was Ubuntu 16.04.x LTS x64.
My platform is a Gigabyte GA-X150M-PRO ECC
I have a 2x 8GB kit of Kingston KVR21E15D8K2/16I DDR4 ECC memory, which i’ve run in the following configurations (inner means near CPU, outer means near edge):
* "DDI": dual DIMM, dual channel, inner sockets (DDR4_4 & DDR4_3)
* "DDO": dual DIMM, dual channel, outer sockets (DDR4_2 & DDR4_1)
* "DSO": dual DIMM, single channel, outer sockets (DDR4_3 & DDR4_1)
* "SSO": single DIMM, single channel, outer socket (DDR4_1)
Here are the (imho)relevant sections of
dmidecode …* sigh * …ok, nope, that’s not gonna happen! I’ll certainly not manually prefix every single line with 4 spaces, in order to produce nice “monospace code” block formatting in this here forum! No, no, nope, no-no-no-no-no, NOPE, not happening! (I’ll file a bug report / feature request, demanding a simple
<pre> tag later.)
A’ight, here’s Plan B, a.k.a. the
interpretation of my scientific results, but without any supporting data. (you’re wellcome)
Type Detail: Synchronous is present in all samples: doesn’t seem to be an indicator of S/D channel mode. I guess the
Synchronous produced by
lshw -short -c memory is equally irrelevant. It’s probably ‘synchronous’ to the memory controller’s clock. (might be an indicator for CPU-internal mem ctlr, not sure though)
Partition Width: is present in both S&D channel configs. However, it’s value was different. In every “Dxx” it was 2, but in the “Sxx” (Single DIMM) config it was 1. This might be an indicator for the total amount of installed DIMMs. Per definition, a value >= 2 is required for dual / multi channel mode.
- GOTCHA! The keyword
Interleave wasn’t present in any of the “xSx” (single channel) samples, but was present in all of the “xDx” samples.
Your RAM does NOT run in SINGLE channel mode when the keyword
Interleave is present in
dmidecode output. Please feel free to comment and correct my interpretation.
Interleave Position must be, …well, nope, i’m not touching that one, yet.
But the field
Interleaved Data Depth, almost certainly describes the amount of currently used memory channels.
If you have access to a multi channel RAM box, preferably triple, quad channel, or even more awesome, please post your
dmidecode | grep Interleave, in order to verify my
Interleaved Data Depth hypothesis.
edit: my CPU was a Xeon E3-1230 V5