On Sat, 2005-06-11 at 16:02 +0100, Miguel Filipe wrote: > Hi there, > I have a dual-opteron with 8GB of ramm installed (8x1GB dimms) on a > Tyan K8W (S2885). > But linux only uses 7.3 Gb... > Linux on boot detects correctly the available 8Gb: > > [EMAIL PROTECTED] ~> dmesg|grep -i mem > Node 0 MemBase 0000000000000000 Limit 00000000ffffffff > Node 1 MemBase 0000000100000000 Limit 00000001ffffffff > Bootmem setup node 0 0000000000000000-00000000ffffffff > Bootmem setup node 1 0000000100000000-00000001ffffffff > HighMem zone: 0 pages, LIFO batch:1 > HighMem zone: 0 pages, LIFO batch:1 > Memory: 7391892k/8388608k available (2655k kernel code, 0k reserved, > 700k data, 200k init) > agpgart: Maximum main memory to use for agp memory: 7956M > Freeing unused kernel memory: 200k freed > ohci_hcd 0000:03:00.0: irq 19, pci mem 0xfc8fd000 > ohci_hcd 0000:03:00.1: irq 19, pci mem 0xfc8fe000 > > Note: > Memory: 7391892k/8388608k available (2655k kernel code, 0k reserved, > 700k data, 200k init) > > Now, I've seen that this unused memory is related to pci && AGP dma maps.. > But, on my sparc I also have PCI and I don't have these problems > (4gb real, 4gb used..) > And on dual-opterons with 8GB from HP (rack 1u, don't recall model name) > I also have 4Gb real, and 4Gb being used. > > So, does anyone know how to make this system really use the 8GB of ram.. > > Having 700MB of fast ram being unusable isn't very to my taste...
I got the following official answer from Tyan, if it helps you: ================================================================ Why does my OS see less than the total memory installed when I install 4GB or more of memory (typically 512MB less)? The BIOS needs to overlay the APIC, ACPI Table, AGP Aperture and PCI MMIO (Memory-mapped I/O [see PCI Spec 2.3, Section 3.2.2 for more information]) over the last 512MB of the 4GB physical address space. OS accessible memory and these structures cannot both exist at the same place and this portion of DRAM is hidden and unavailable to the OS. Is there a solution for the missing memory when using 4GB of total memory? Not easily, the theoretical possibility exists that the BIOS can map all of the addresses attached to one DIMM module above the 4GB limit, but the BIOS cannot move smaller address ranges piece by piece. Mapping a whole DIMM is a new concept, unproven in real world testing. It also penalizes 32-bit OS's that cannot use more than 4GB. Since the BIOS does not know what OS you have when it does the memory assignments, it has to optimize for the common case, which is likely a 32-bit OS you may or may not want to use. In a system with less than 4GB the BIOS must choose between providing as much as possible below 4GB to benefit 32-bit legacy OS users or raise one whole DIMM module above the 4GB ceiling to benefit 64-bit OS 's at the loss of DRAM to a much more memory limited 32-bit OS. -- shimi <[EMAIL PROTECTED]> -- [email protected] mailing list
