vmalloc size
From: Dave Hylands <hidden>
Date: 2012-06-26 05:37:24
Hi, On Mon, Jun 25, 2012 at 9:01 PM, ??? [off-list ref] wrote:
quoted
Suppose your machine has 1 GB of RAM with a physical addresses of 0x40000000 thru 0x7FFFFFFF Let's suppose that PHYS_OFFSET = 0xC0000000 Let's suppose that VMALLOC_START is set to 0xE0000000 and VMALLOC_END is at 0xEFFFFFFF (256 Mb)is this PAGE_OFFSET or PHYS_OFFSET?
PAGE_OFFSET is a virtual address, and PHYS_OFFSET is a physical address, so you are correct. That should have been PAGE_OFFSET.
quoted
So what we have is that memory from 0xC0000000 thru 0xDFFFFFFF (512 Mb) is kernel direct mapped memory and maps to physical addresses 0x40000000 thru 0x5FFFFFFF Physical memory from 0x60000000 thru 0x7FFFFFFF (512Mb) is considered high-mem. For the most part this is only usable by user-space. From kernel space, you need to use the kmap/kunmap functions to even access the memory.i don't think high-memory is only used by user-space. vmalloc() funciton will try to allocate physical memory from high_memory first, if there is no high_memory, then allocate from normal region.
That also seems to be correct. The code in vmalloc that calls the underlying page allocator passes in __GFP_HIGHMEM, so it will try to use highmem for vmalloc'd pages.
quoted
However, if you call vmalloc and lets suppose that vmalloc just happens to return 0xE0000000. The physical address of the first page might be 0xD2345000.suppose vmalloc() return 0xE0000000, which is the VMALLOC_START, then the physical memory address should be 0x60000000 thru 0x7FFFFFFF in your example.quoted
What's important is that the physical pages which back up the vmalloc area all come from the kernel direct mapped area. They won't ever be backed by pages from high-memory. So the physical addresses will all be in the range 0x40000000 thru 0x5FFFFFFF.what do you mean "back up", maybe i have some misunderstanding. in my opnion, vmalloc area should map to physical address 0x60000000 thru 0x7FFFFFFF first, if this resion is exhausted, then normal area will be allocated.
By backed-by, I meant the associated physical page. I was incorrect in saying that only lowmem pages would be used. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com