TenForward

技術ブログ。はてなダイアリーから移転しました

Memory Split

Linux kernel の make menuconfig で

Configure standard kernel features (for small systems) 

ってオプションを有効にすると CONFIG_EMBEDDED というのが設定されます (General Setup) が,これを設定していると,

Memory split (2G/2G user/kernel split) 

というメニューが有効になります (Processor type and features).これ,ちょい前に調べた 4g/4g split と似てるな,って事で動きを見てみました.

8GB 搭載のマシンで PAE を有効にして,この設定を "2G/2G user/kernel split" (VMSPLIT_2G) にします.すると,

# cat /proc/meminfo 
MemTotal:        8227768 kB
MemFree:         7146292 kB
    : (snip)
HighTotal:       6345904 kB
HighFree:        5466796 kB
LowTotal:        1881864 kB
LowFree:         1679496 kB
    :

こんな感じ.ま,想像通りです.(kernel 2.6.30, Plamo Linux 4.6 で試しました)

補足すると,普通はユーザ領域/カーネル領域は 32bit の x86 では 3GB/1GB となっていて,1GB のうち,LowMemory 領域と呼ばれるのは 800MB 超程度なんですよね〜.以下,別の環境ですが,

MemTotal:        2836484 kB
    : (snip)
HighTotal:       1976548 kB
HighFree:        1477536 kB
LowTotal:         859936 kB
LowFree:          803096 kB
    :

(ご参考)

しかし,CONFIG_EMBEDDED って名前はクセモノですな.まあ menuconfig の説明はそうは書かれてないのでマシですが.

But don't be confused by the naming: CONFIG_EMBEDDED nowadays means
"options for people who know really what they do". It came originally
from the embedded world but applies now also to others.
No one has come up with a better option name up to now ...

http://lkml.indiana.edu/hypermail/linux/kernel/0602.0/2286.html