Re: The question about the high memory support on MPC8360?
From: vijay baskar <hidden>
Date: 2007-11-28 03:58:05
Hi, "The kernel also allows hardcoded mapping of IO regions into its virtual address space through the io_block_mapping interface." Can u tell me how this is in current arch/powerpc. Also does it mean that whatever be the size of the ram > 768 MB there is not going to be much improvement in performance in kernel space irrespective of invoking CONFIG_HIGHMEM or not? Also do you think this low mem be enough if i have lots of kernel space processes each invoking lots of kmallocs. Will there be bottle necks?? Also what alternative do we have if low mem of 768 MB is not enough?? Scott Wood wrote:
vijay baskar wrote:quoted
The kernel maps the last 1 GB of the virtual address space one to one to the physical memory.No, it maps 768MB of RAM in this manner.quoted
This is called the kernel space. After the one to one mapping is done for the available physical memory, the remaining virtual addresses are used for vmalloc and ioremap.And highmem mappings.quoted
The kernel also allows hardcoded mapping of IO regions into its virtual address space through the io_block_mapping interface.Not in current arch/powerpc kernels.quoted
Many boards use the block IO mapping to map the CCSRBAR/IMMR into the kernel address space, such that the physical address and the virutal address is the same. Virtual addresses beyond these hardcoded mappings cannot be used by vmalloc/ioremap.And this is why.quoted
Now as more and more memory is added to the system the addresses available for vmalloc and ioremap gets reduced, and memory allocations start to fail, due to the lack of availability of virtual addresses.How so? The size of lowmem is constant once you reach the threshold, as is the size of the highmem mapping area. What *does* start to fail eventually, if you have a *lot* of highmem, is that you run out of lowmem for pagetables and such. -Scott