Messages in this thread | | | Date | Wed, 12 Sep 2012 20:40:58 -0400 | From | Cyril Chemparathy <> | Subject | Re: [PATCH] mm: bootmem: use phys_addr_t for physical addresses |
| |
Hi Tejun,
On 9/12/2012 8:34 PM, Tejun Heo wrote: > Hello, > > On Wed, Sep 12, 2012 at 08:08:30PM -0400, Cyril Chemparathy wrote: >>> So, a function which takes phys_addr_t for goal and limit but returns >>> void * doesn't make much sense unless the function creates directly >>> addressable mapping somewhere. >> >> On the 32-bit PAE platform in question, physical memory is located >> outside the 4GB range. Therefore phys_to_virt takes a 64-bit >> physical address and returns a 32-bit kernel mapped lowmem pointer. > > Yes but phys_to_virt() can return the vaddr only if the physical > address is already mapped in the kernel address space; otherwise, you > need one of the kmap*() calls which may not be online early in the > boot and consumes either the vmalloc area or fixmaps. bootmem > interface can't handle unmapped memory. >
You probably missed the lowmem bit from my response?
This system has all of its memory outside the 4GB physical address space. This includes lowmem, which is permanently mapped into the kernel virtual address space as usual.
-- Thanks - Cyril
| |