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"