On Mon, Jun 25, 2012 at 3:00 PM, Dave Hylands <dhylands@gmail.com> wrote:
Hi Subbu,
On Mon, Jun 25, 2012 at 11:18 AM, Subramaniam Appadodharana <c.a.subramaniam@gmail.com> wrote:
On Mon, Jun 25, 2012 at 1:00 PM, Mulyadi Santosa <
mulyadi.santosa@gmail.com>
wrote:
Hi.... :)
On Sun, Jun 24, 2012 at 1:32 AM, Subramaniam Appadodharana <c.a.subramaniam@gmail.com> wrote:
Hi All, I am trying to understand how vmalloc memory is reserved in kernel. In 3.4+ latest kernel, the default vmalloc size is 240MB.
vmalloc reserved address range, you meant?
Is this a carveout from the 1GiB memory that kernel has?
Yup....
In other words can I do a __pa(VMALLOC_START) or __pa(VMALLOC_END) or __pa(highmemory) irrespective of the vmalloc size that I request,
say
doing vmalloc=1G?
uhm....not sure....vmalloc-ed is not physically contigous. Also, it is set up far after identity mapping setup. So, the value you get from __pa() IMHO would be likely invalid or has no meaning.
I thought that, as log as we know that the address is within the 1GiB, we could get the pa of the virtual address using __pa(). Is this not the case?
__pa only works on kernel direct addresses.
__pa doesn't work on the addresses from vmalloc
Using __pa on VMALLOC_START or VMALLOC_END doesn't really make sense. If there were any physical memory there, it would be highmem.
Okay, but my intention was to just print out the pa for the VMALLOC_START and END, just to know where they are. And I thought they will work. no?
__pa should only be used on memory from PAGE_OFFSET through to (high_memory
- 1)
-- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com