crazyscot: Fake warning sign reading "Danger Helvetica" (helvetica)
Add MemoryShare This Entry
posted by [personal profile] crazyscot at 07:15pm on 21/05/2011 under
My desktop has an Intel Core2 Duo of 2007 vintage, with an Intel DG965SS motherboard. For the past four years it has had 2Gb of main memory, which largely served me well. Today I finally got round to upgrading it; having checked what it would take I reckoned I would get one 2Gb stick for each of the two spare slots, seeing as they're only £24 each at WOC.

So I booted back to my desktop and it was great; things were much faster. But then I noticed that the memory usage meter only showed me as having 3.2Gb available.

"Huh?" quoth I. 3.2G is a well-known issue if you're running a 32-bit kernel which doesn't have PAE enabled (i.e. is limited to 4G; you lose the top 800M or so of the address space to motherboard and OS internals), or indeed if you're running 32-bit Windows. But on a 64-bit machine running a 64-bit kernel? Surely not.

Well, in amidst the noise of bootup log there was this wonderful(?!) line:

WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 2752MB of RAM.

My first thought was Whisky. Tango. Foxtrot. and my second, Ouch.

Googling suggested that I should look for BIOS updates, but that a number of people have been bitten by this sort of motherboard issue and not been able to get it fixed. I looked at the latest version on intel.com; the release notes were not very clear, but did provide a hint that something in this department had been fixed, so I was optimistic and went ahead with the upgrade. They're slightly scary if you're not running off a UPS, but nevertheless the power held.

And now it works - Linux can see all six gigs - and I am giving them an exercise. I could have done without that!
Mood:: 'uncomfortable' uncomfortable
There are 4 comments on this entry. (Reply.)
 
posted by [personal profile] mjg59 at 06:51pm on 21/05/2011
Mm. We should arguably handle that case better - the problem is that without the MTRR coverage, accesses to that memory end up uncached. Guess how well that works. Trimming the memory down to the MTRR range at least lets people use the machine well enough to find a BIOS upgrade.

Previous attempts to reconfigure the mtrr layout have tended to end quite badly, with all kinds of unexpected interactions with the BIOS (there aren't enough MTRRs to avoid every hole in memory, but how do we tell if the BIOS expects a specific area of reserved address space to be uncached?). Moving to using PAT instead might work better, but then we end up with the pretty much entirely undocumented semantics of what happens when you have conflicting MTRR and PAT configurations. Have I ever mentioned that everything involving firmware is dreadful?
bens_dad: (Default)
posted by [personal profile] bens_dad at 03:47pm on 31/05/2011
Which BIOS did you use ?

I have a number of machines with DG965SS motherboards and had been thinking of doing the same thing to them.
I've just upgraded the BIOS on two of them to
Version: MQ96510J.86A.1754.2008.1117.0002
Release Date: 11/17/2008
but linux still runs out of MTRRs.

One machine is running Scientific Linux 5.5 (kernel 2.6.18-238.9.1.el5) the other is running Scientific Linux 6.0 (kernel 2.6.32-71.29.1.el6).
I'm using the onboard intel video.

Memtest86+ (v4.20) Is happy to test all 6GB RAM.
crazyscot: Selfie, with C, in front of an alpine lake (Default)
posted by [personal profile] crazyscot at 05:41pm on 31/05/2011
The latest one, I think. The one that downloads as filename MQ96510J.86A.1754.EB.EXE which I suspect is the same one you're looking at (rev 1754).
bens_dad: (Default)
posted by [personal profile] bens_dad at 09:49pm on 13/06/2011
That is indeed the one I tried. It did work fine once I did two obvious things:

1) use a 64-bit OS. My example 32-bit system is not a good machine to try 6GB, and

2) Power cycle the machine after updating the BIOS :-).

Thanks.

November

SunMonTueWedThuFriSat
          1
 
2
 
3 4
 
5
 
6
 
7
 
8
 
9
 
10
 
11
 
12
 
13
 
14
 
15
 
16
 
17
 
18
 
19
 
20
 
21
 
22
 
23
 
24
 
25
 
26
 
27
 
28
 
29
 
30