Linuxカーネル:LOWMEM + HIGHMEM>合計メモリ?

Linuxカーネル:LOWMEM + HIGHMEM>合計メモリ?

皆さん、私が理解していないことがあります。

私は32ビットPAE対応Linuxカーネルを実行する4GB RAMノートブックを持っています。このシステムは、統合グラフィックスを備えたAMD APUで駆動され、私が知っている限り、システムメモリからグラフィックメモリをドラッグします。

今私の項目には、dmesg次のように表示されます。

メモリ: 3574156K/3638392K 利用可能

合理的に見えます。 4GBのメモリを考えると、3638392Kが合理的に見えます。そのうち約512MBがGPUに使用されます。数学は完全に正確ではないかもしれませんが、仮説が正しいことを示すのに十分近いです。

GPUが512MBを占めることを証明できますか?可能:次の行がありますdmesg

radeon 0000:00:01.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)

VRAMが追加のメモリ専用である必要はないと仮定すると(マシンにないと確信しています)、GPUは実際にシステムメモリから512 MBを取ることができます。

これまではとても良かったので、フォローアップができると思いました。ただし、次の行も見てくださいdmesg

3700MB HIGHMEM available.
891MB LOWMEM available.

と、合計4591MBですね。さて、4GBで十分で、追加のVRAMも必要ないということを考えると、HIGHMEM + LOWMEMはどうやってそれほど大きな価値になるのでしょうか?私はこれらの2つの値を加えるとシステムの合計メモリ量と同じであると仮定しましたが、ここでは何か間違った仮定をしている可能性が十分にあります。私の考えでは、一部のデバイスマッピングメモリなどの「実際の」メモリではないメモリもLOWMEMおよび/またはHIGHMEMに含まれているようです。

私は本当に知らない。しかし、誰かが私にこれについて明らかにすることができれば、私はとても嬉しいです。

dmesgああ、そして参考までに私が言う機械の完全な出力が出ています。

http://ftp.tisys.org/pub/misc/teela_dmesg.txt

みんなありがとうございます! :-)

答え1

今年はこれについて読んだことを知っていますが、これを見つけるには飛行機に乗って帰らなければなりませんでした。https://web.archive.org/web/20130513093456/http://kerneltrap.org/node/2450

あなたの質問に直接答えるかどうかはわかりませんが、役に立つかもしれません。私はそれらのいくつかをほとんど理解していません。

関連情報