[ kule @ 21.02.2007. 11:12 ] @
Nedavno sam, dodao jos 512MB RAM-a i sada imam 2x512MB u dual chanel-u.
Kad udjem u winxp on mi kaze da imam 1GB RAM-a, ali problem je sto u linuxu kad pokrenem:

# cat /proc/meminfo

ispise mi:

MemTotal:      905512 kB

Mislim da ovo nije normalno, da mi prijavljuje da imam oko 100MB manje RAM-a nego sto imam?

[ Tyler Durden @ 21.02.2007. 12:19 ] @
Moras u kernel da dodas high memory support
[ kule @ 21.02.2007. 12:39 ] @
Upravo sam to uradio :)
[ slacker @ 21.02.2007. 20:49 ] @
Zapravo se to ne preporuča s aspekta performansi ako imaš do gigu rama.

In Linux, the memory available from all banks is classified into "nodes". These nodes indicate how much memory each bank has. This classification is mainly useful for NUMA architectures, but it's also used for UMA architectures, where the number of nodes is just 1.

Memory in each node is divided into "zones". The zones currently defined are ZONE_DMA, ZONE_NORMAL and ZONE_HIGHMEM.

ZONE_DMA is used by some devices for data transfer and is mapped in the lower physical memory range (up to 16 MB).

Memory in the ZONE_NORMAL region is mapped by the kernel in the upper region of the linear address space. Most operations can only take place in ZONE_NORMAL; so this is the most performance critical zone. ZONE_NORMAL goes from 16 MB to 896 MB.

To address memory from 1 GB onwards, the kernel has to map pages from high memory into ZONE_NORMAL.

Some area of memory is reserved for storing several kernel data structures that store information about the memory map and page tables. This on x86 is 128 MB. Hence, of the 1 GB physical memory the kernel can access, 128MB is reserved. This means that the kernel virtual address in this 128 MB is not mapped to physical memory. This leaves a maximum of 896 MB for ZONE_NORMAL. So, even if one has 1 GB of physical RAM, just 896 MB will be actually available.


Should I enable CONFIG_HIGHMEM for my 1 GB RAM system?

It is advised to not enable CONFIG_HIGHMEM in the kernel to utilize the extra 128 MB you get for your 1 GB RAM system. I/O Devices cannot directly address high memory from PCI space, so bounce buffers have to be used. Plus the virtual memory management and paging costs come with extra mappings.

Iz vrlo dobrog članka:
[ risk @ 05.04.2007. 06:19 ] @
ja imam giga rama ali sam pomerio split da ne bude 1g/3g nego 2g/2g.
kazu ljudi da moze da dodje do problema sa matorim kernel modulima, medjutim meni sve radi ok.