5
2
I'm using Windows 7 64-bits on a Lenovo 530 notebook with 4GB of RAM.
However, my task manager shows that the amount of RAM is only 2.6GB, and resource monitor shows that 1.4 GB is "used by hardware":
Obviously, I'd like to use a bit more of my RAM (at the moment it is not possible to start up a VirtualBox VM using 2GB of Ram, for example).
So I went on a quest to find which device may be the reason that I have only so little RAM available and whether I can update its drivers or disable it...
First I tried a 64-bit Linux Live ISO (grml64) to rule out any driver problems, and the memory situation is the same there (also only 2.6GB usable in /proc/meminfo
). Others suggest msconfig
may have set a memory limit, but there is none set (and if I set one to for example 3.5GB, the available memory decreases by 0.5GB).
Next, I tried meminfo -r
which outputs this:
MemInfo v2.10 - Show PFN database information
C:\Users\Michi\Desktop>meminfo -r
Copyright (C) 2007-2009 Alex Ionescu
www.alex-ionescu.com
Physical Memory Range: 0000000000001000 to 000000000009D000 (156 pages, 624 KB)
Physical Memory Range: 0000000000100000 to 0000000020000000 (130816 pages, 523264 KB)
Physical Memory Range: 0000000020200000 to 0000000040004000 (130564 pages, 522256 KB)
Physical Memory Range: 0000000040005000 to 00000000871F2000 (291309 pages, 1165236 KB)
Physical Memory Range: 0000000100000000 to 000000011F600000 (128512 pages, 514048 KB)
MmHighestPhysicalPage: 1177088
Therefore, the memory from 0x871F2000 to 0x100000000 is unusable, which is about 1.8 GB, but the usable memory range above 4G is only about 500 MB, the difference being about the 1.4 GB I'm "hunting".
Usually, my expectation (from old computers also from DOS times) is that when hardware "maps" some memory range, it will map it with its own (virtual or real) memory, and the amount of memory will "appear" at the end of the memory range (as it happens with the about 500MB above 4GB).
The memory map in device manager looks like this, nothing at 0x871F... either:
[00000000000A0000 - 00000000000BFFFF] Intel(R) HD Graphics 4000
[00000000000A0000 - 00000000000BFFFF] PCI bus
[00000000DFA00000 - 00000000FEAFFFFF] PCI bus
[00000000E0000000 - 00000000EFFFFFFF] Intel(R) HD Graphics 4000
[00000000F0000000 - 00000000F03FFFFF] Intel(R) HD Graphics 4000
[00000000F0400000 - 00000000F0BFFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 1 - 1E10
[00000000F0C00000 - 00000000F13FFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 3 - 1E14
[00000000F1400000 - 00000000F1403FFF] Realtek PCIe GBE Family Controller
[00000000F1400000 - 00000000F14FFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 4 - 1E16
[00000000F1404000 - 00000000F1404FFF] Realtek PCIe GBE Family Controller
[00000000F1500000 - 00000000F1CFFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 3 - 1E14
[00000000F1D00000 - 00000000F1D03FFF] 1x1 11b/g/n Wireless LAN PCI Express Half Mini Card Adapter
[00000000F1D00000 - 00000000F1DFFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 2 - 1E12
[00000000F1E00000 - 00000000F25FFFFF] Intel(R) 7 Series/C216 Chipset Family PCI Express Root Port 1 - 1E10
[00000000F2600000 - 00000000F260FFFF] Intel(R) USB 3.0 eXtensible-Hostcontroller
[00000000F2610000 - 00000000F2613FFF] High Definition Audio-Controller
[00000000F2614000 - 00000000F26140FF] Intel(R) 7 Series/C216 Chipset Family SMBus Host Controller - 1E22
[00000000F2615000 - 00000000F261500F] Intel(R) Management Engine Interface
[00000000F2618000 - 00000000F26187FF] Intel(R) 7 Series Chipset Family SATA AHCI Controller
[00000000F2619000 - 00000000F26193FF] Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E26
[00000000F261A000 - 00000000F261A3FF] Intel(R) 7 Series/C216 Chipset Family USB Enhanced Host Controller - 1E2D
[00000000F8000000 - 00000000FBFFFFFF] Hauptplatinenressourcen
[00000000FE800000 - 00000000FE80FFFF] Hauptplatinenressourcen
[00000000FED00000 - 00000000FED003FF] Hochpräzisionsereigniszeitgeber
[00000000FED10000 - 00000000FED17FFF] Hauptplatinenressourcen
[00000000FED18000 - 00000000FED18FFF] Hauptplatinenressourcen
[00000000FED19000 - 00000000FED19FFF] Hauptplatinenressourcen
[00000000FED1C000 - 00000000FED1FFFF] Hauptplatinenressourcen
[00000000FED20000 - 00000000FED3FFFF] Hauptplatinenressourcen
[00000000FED40000 - 00000000FED44FFF] Trusted Platform Module 1.2
[00000000FED45000 - 00000000FED8FFFF] Hauptplatinenressourcen
[00000000FED90000 - 00000000FED93FFF] Hauptplatinenressourcen
[00000000FEE00000 - 00000000FEEFFFFF] Hauptplatinenressourcen
[00000000FF000000 - 00000000FFFFFFFF] Hauptplatinenressourcen
[00000000FF000000 - 00000000FFFFFFFF] Intel(R) 82802 Firmwarehub
[00000000FFFFF000 - 00000000FFFFFFFF] Hauptplatinenressourcen
And since the Intel HD Graphics uses shared memory, I verified and it is only using 83 MB at the moment:
Any ideas how to get my memory back?
EDIT:
The notebook came with this RAM configuration (1 bank of 4GB used), and it also came with Windows 7. I did reinstall the Windows 7 half a year ago (and installed all drivers using Lenovo Update Wizard), at which time I also installed a BIOS/firmware update, but never had a look at resource monitor since I just did not need the extra RAM at all, so I cannot tell if that effect was already there when I got it.
EDIT2:
Apparently, @A32167 is right. I found a small example how to load textures in WebGL, modified it to load a 8192x8192 texture (see http://jsfiddle.net/q4SAS/), opened it in Google Chrome, and while the "Graphics Memory in use" increased to 918MB, the hardware reserved memory did not change:
While this answers my question, the question that of course remains is why Lenovo advertises with dynamic graphics memory allocation and whether there is a way to decrease the allocated memory...
EDIT3:
Unfortunately, this is not the end of the story - see here: What hardware device used to eat up 1.4GB of my 4GB RAM, and now suddenly after no hardware changes eats up 2.2GB?
At least in the olden days it was pretty much normal for a laptop display adapter to use the laptop RAM for "buffers". I would assume that's what's going on here. As to whether the "reserved" space is actually being used (or will ever be, under any circumstance), it's hard to say. – Daniel R Hicks – 2013-12-11T16:56:03.627
Of course, I've also heard of scenarios where a system might "take" 4GB, but, due to the particular chipset in use, the way the address bus is arranged, etc, only really support some smaller number. – Daniel R Hicks – 2013-12-11T16:58:24.330
What does
verwendung
andGeandert
mean? – Jon – 2013-12-12T15:30:06.027@chipperyman573: In Verwendung = "In use", Geändert = "Changed" - sorry cannot install English langpack on my edition on Win7 :( – mihi – 2013-12-12T15:31:27.163