2017-01-05 28 views
0

當內核擁有2GB內存時會發生什麼?分割爲2GB時的linux內存映射:2GB而不是1GB:3GB

  1. 894MB的直接映射保持不變,從3GB的虛擬地址空間開始保持不變。

  2. 將爲vmalloc預留的臨時映射獲取更多128 MB的虛擬內存,以及虛擬地址3GB以下的新1GB。 ?

  3. 下圖對於2GB內核空間爲true。

| ------------------ | 4GB

| 128MB |

vmalloc region

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

| 896MB |

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

| 1GB |

vmalloc的區域

| ------------------- | 2GB

回答

0

得到了答案..

的PAGE_OFFSET必須設置到0x80000000而不是典型的默認值 0xC0000000,這意味着所有的高內存區域將被映射到內核內存的896MB以上。

這個PAGE_OFFSET被__pa(x)和__va(x)用於地址轉換。