简体   繁体   中英

High mem in arm Architecture

High memory (highmem) is used when the size of physical memory approaches or exceeds the maximum size of virtual memory. The traditional split for architectures using this approach is 3:1, 3GiB for userspace and the top 1GiB for kernel space. This means kernel can at most map 1 GiB of physical memory.

In mobile devices average physical memory present is around 1 GiB. So kernel can map that much amount of memory.

Is there need of highmem in devices with 1GiB of physical memory?

How much physical memory we can address using highmem config option ?

Thanks

是的,需要 hignmem,内存映射 IO 和物理 RAM 的非线性映射需要一些 1GiB 地址空间。

You actually can see how much memory is accessible with lowmem. On a machine with 1GB physical memory and the 3G/1G VMSPLIT option I get this value:

Virtual kernel memory layout:
    ...
    lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)

So if your physical memory exceeds 760MB, you probably want to enable highmem.

As for how much memory you can address using highmem config option, I am not sure but I guess the maximum is what is physical addressable so 4GiB (or close to it) without LPAE. But most SoC will have a lower limit hardware wise since some address space will be used by memory mapped peripherals.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM