2017-01-05 11 views
0

カーネルが2GBのメモリを所有しているとどうなりますか?分割が2GBの場合のLinuxのメモリマッピング:1GBではなく2GB:3GB

  1. 894MBのダイレクトマッピングは、3GBの仮想アドレス空間から始まる同じままです。

  2. vmallocのための一時マッピングは128 MBの仮想メモリと仮想アドレスの3 GB未満の新しい1 GBを取得します。 ?

  3. は、2GBのカーネルスペースの場合は下の画像です。

| ------------------ | 4ギガバイト

| 128MB |

vmalloc地域

| ------------------ |

| | 896MB |

| ---------------- | 3GB

| 1GB |

vmalloc地域

| ------------------- | 2ギガバイト

答えて

0

PAGE_OFFSETを設定する必要があります。..

を答えを得ました通常のデフォルトの 0xC0000000の代わりに0x80000000に設定します。これは、すべての高メモリ領域が896MBのカーネルメモリの上にマップされることを意味します。

このPAGE_OFFSETは、アドレス変換に__pa(x)と__va(x)によって使用されます。

関連する問題