3GB以上のメモリサポート on OpenBSD/amd64
OpenBSD-current/amd64を4GBのメモリを搭載しているマシンに入れてみたら何故かメモリが3GBとちょっとしか認識されていない事に気づいた。
どうやら、こういう事らしい:
http://kerneltrap.org/mailarchive/openbsd-misc/2008/12/15/4424704
取り合えずこれで認識するようになった:
--- /usr/src/sys/arch/amd64/amd64/machdep.c.~1.102.~ Tue Nov 24 01:21:54 2009 +++ /usr/src/sys/arch/amd64/amd64/machdep.c Tue Feb 9 12:02:35 2010 @@ -1181,7 +1181,7 @@ extern vector IDTVEC(oosyscall); extern vector *IDTVEC(exceptions)[]; -int bigmem = 0; +int bigmem = 1; void init_x86_64(paddr_t first_avail)
が、未だテスト中なのだろう。i386には無いようだが、問題ないのだろうか。
どういう理由でこういう事になってるのか、ちょっと気になる。
BIOSも関係してくる話のようだが…正確なメモリサイズの取得に問題があるのか?
或いはページングのモードとかメモリマップとかそういう問題なのか?いや、それなら機種依存しないような…。
追記:
「4GBの後ろの空間はmemory mapped I/Oが使っているから普通は見えない。見るには一定の条件がある。」
という事のようです。@kfujieda先生に教えて頂きましたm(. .)m
藤枝和宏 - ぱんなこった@佐鎮 on Twitter: "@syuu1228 4GBの後ろの空間はmemory mapped I/Oが使っているから普通は見えない。見るには一定の条件がある。この辺の事情はMicrosoftのKBが一番詳しい。http://support.microsoft.com/kb/929605"