在32位x86的内核地址空间中映射ZONE_HIGHMEM

时间:2013-05-11 03:29:19

标签: linux linux-kernel virtual-memory

在具有3:1拆分的系统中,大小为896MB的ZONE_NORMAL永久映射到内核地址空间。这在内核地址空间留下了128MB的可用空间,根据我的理解,ZONE_HIGHMEM页面被映射暂时到这个128MB的部分。如果系统实际上有一个4GB的物理内存,你将把HIHGMEM部分(大约是3.2GB)映射(不是同时)到这个128MB的部分。如果是这种情况,内核将不得不经常访问HIHGMEM,这意味着临时更改临时映射,并且在我看来是一个惩罚。那么ZONE_NORMAL固定在896MB而不是真的更低的原因是什么呢?

1 个答案:

答案 0 :(得分:1)

ZONE_NORMAL内存区域是大多数操作只能进行的区域。它越大,整个系统的性能就越好。你提到的惩罚可能很少影响表现。

请阅读这篇文章。
http://kerneltrap.org/node/2450