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

Re: more than 12G of RAM



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.

-- 
Stan


Reply to: