[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: more than 12G of RAM



On 2/10/2014 4:28 PM, Gary Dale wrote:
> On 10/02/14 03:48 PM, Stan Hoeppner wrote:
>> On 2/10/2014 2:14 PM, Gary Dale wrote:
>>> On 10/02/14 11:24 AM, Dave Woyciesjes wrote:
>>>> On 02/09/2014 10:14 AM, Jerry Stuckle wrote:
>>>>> On 2/9/2014 8:27 AM, Gary Dale wrote:
>>>>>> On 09/02/14 06:50 AM, Stan Hoeppner wrote:
>>>>>>> On 2/9/2014 3:32 AM, Efraim Flashner wrote:
>>>>>>>> On Sat, 08 Feb 2014 10:20:49 -0500
>>>>>>>> Gary Dale<garydale@torfree.net>  wrote:
>>>>>>>>
>>>>>>>>> I'm running Jessie on an AMD64 Gigabyte 970A-D3P board with an
>>>>>>>>> FX6100
>>>>>>>>> processor. I had 2x4G DDR3 sticks in it but some of the programs I
>>>>>>>>> use were causing excessive thrashing. I added a 1x8G DDR3 stick
>>>>>>>>> (got
>>>>>>>>> a good price on it, much cheaper than adding 2x4G) which resolved
>>>>>>>>> the
>>>>>>>>> thrashing problem.
>>>>>>>>>
>>>>>>>>> The BIOS shows I have 16G but free shows only 12G. I also ran
>>>>>>>>> free on
>>>>>>>>> a machine with 2x8G DDR3 running Wheezy and it showed 16G when
>>>>>>>>> I ran
>>>>>>>>> free. This suggests that the kernel is handling 16G (as one would
>>>>>>>>> expect) in the general case and the issue is likely due to my
>>>>>>>>> setup.
>>>>>>>>>
>>>>>>>>> Since the BIOS shows the full 16G, the problem doesn't seem to
>>>>>>>>> be on
>>>>>>>>> the mainboard. Is there an issue with running interleaved and
>>>>>>>>> non-interleaved RAM together on the Jessie kernels?
>>>>>>>>>
>>>>>>>>>
>>>>>>>> It sounds to me like you have some issues between your two sets of
>>>>>>>> ram,
>>>>>>>> the 8G stick and the 2x4G sticks.  Is there a difference in
>>>>>>>> timings/speed/voltage?  I've never put much stock in people saying
>>>>>>>> that
>>>>>>>> you shouldn't mix different types of ram if the price is right,
>>>>>>>> but you
>>>>>>>> might need to change around the placement order.  Assuming the
>>>>>>>> motherboard supports dual-channel ram, I'd make sure you have the
>>>>>>>> 2x4G
>>>>>>>> sticks paired up and the 8G stick on its own channel.
>>>>>>> According to page 16 of the manual you have an unsupported memory
>>>>>>> configuration:
>>>>>>> http://download.gigabyte.us/FileList/Manual/mb_manual_ga-970a-d3p_e.pdf
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> If this combo will ever work, the first step is to verify the 8GB
>>>>>>> stick
>>>>>>> is in one channel and the two 4GB sticks in the other.  If you still
>>>>>>> don't see all 16GB then disable rank interleaving.  If that doesn't
>>>>>>> fix
>>>>>>> it, disable channel interleaving.  If that doesn't fix it, you may
>>>>>>> be of
>>>>>>> luck, and will need to either swap the 8GB stick for a pair of
>>>>>>> matched
>>>>>>> 4GB sticks, or acquire another identical 8GB stick.
>>>>>> That page just tells you how to install dual-channel DDR3 sticks.
>>>>>> Again,
>>>>>> the BIOS detects the full 16G. This shows that the setup does work
>>>>>> with
>>>>>> the board.
>>>>>>
>>>>>>
>>>>> "Detected" and "Working" memory are two entirely different things.
>>>>> It is perfectly possible for your BIOS to detect 16GB, but 4GB of it
>>>>> not work properly.
>>>>>
>>>>> Both Stan and Efraim have good comments.  I suggest you follow them.
>>>>>
>>>>> Jerry
>>>>>
>>>>>
>>>> Have you run memtest yet?
>>>>
>>> Yes. After the other comments, I gave it a try. It also only sees 12G. I
>>> find this confusing in that the board apparently works with a mixture of
>>> interleaved and non-interleaved memory - as witnessed by the fact that
>>> I'm running that way. Why should it see the non-interleaved module as
>>> only 4G instead of 8G?
>>>
>>> The board has 4 sockets and according to the specifications supports up
>>> to 32G of memory, which means it should support 8G modules. I could
>>> understand the problem if it only supported 4G modules, then it might
>>> only see part of the extra memory. I could understand it also if the
>>> configuration simply didn't work and only showed me 8G total. 12G I
>>> don't understand.
>> Apparently you (and everyone else) missed my last post wherein I
>> explained what the problem is here.  Here is the explanation a 2nd time:
>>
>> POST displays a message on the screen that 16GB is present.  But that
>> subroutine is separate from the BIOS code that generates the e820 memory
>> map that is presented to the kernel, which can be found at the start of
>> your dmesg log, e.g.
>>
>> BIOS-provided physical RAM map:
>>   BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
>>   BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
>>   BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
>>   BIOS-e820: 0000000000100000 - 00000000bddde000 (usable)
>>   BIOS-e820: 00000000bddde000 - 00000000bde0e000 (ACPI data)
>>   BIOS-e820: 00000000bde0e000 - 00000000d0000000 (reserved)
>>   BIOS-e820: 00000000fec00000 - 00000000fee10000 (reserved)
>>   BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved)
>>   BIOS-e820: 0000000100000000 - 000000083efff000 (usable)
>>
>> POST says one thing, the e820 map another.  Which is why neither Debian
>> nor memtest (which uses the Linux kernel) can find the other 4GB.  The
>> memory map being presented to Linux is wrong.  If the board does not
>> present the correct e820 map in non-interleaved mode witn mismatched
>> stick sizes, then I guess you could call this a BIOS bug.
>>
>> It is possible to work around this by manually creating a proper map.
>> This can be done using kernel command line options.  However, for a non
>> kernel hacker this job will require far more time, research, heartache,
>> etc, than the cost of simply swapping modules to allow the board BIOS to
>> work.
> 
> Here's what I get in dmesg re. e820:
> 
> [    0.459286] e820: reserve RAM buffer [mem 0x0009e800-0x0009ffff]
> [    0.459290] e820: reserve RAM buffer [mem 0xbe860000-0xbfffffff]
> [    0.459294] e820: reserve RAM buffer [mem 0xbf15e000-0xbfffffff]
> [    0.459297] e820: reserve RAM buffer [mem 0xbf800000-0xbfffffff]
> [    0.459300] e820: reserve RAM buffer [mem 0x33f000000-0x33fffffff]
> 
> This doesn't look like your map, so perhaps I need to look elsewhere?

The map above is simply an example, whose purpose is to demonstrate that
the BIOS presents a memory map to the Kernel.  Your BIOS is presenting
an incorrect map with 2x4 plus 1x8 DIMMs.

> Turning off interleaving doesn't help. 

Please be specific, always.  Did you turn off both channel and rank
interleaving?

> However, if the 8G stick is the
> only memory present, it is recognized correctly.

Of course it is.  Any DIMM work always work by itself granted it's the
right type for the board.  It's the DIMM combinations the BIOS code is
written to work with that matters.  If you've disabled all interleaving
in the BIOS and tried the DIMMs in all possible slot configurations, you
have two realistic options at this point.

1.  Contact Gigabyte support
2.  Buy another identical 8GB DIMM, or exchange this one for two 4s

#1 may lead you to #2 anyway.

-- 
Stan


Reply to: