Re: Allocate continuous memory and physical address.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Thanks for your replied. I surveyed in the internet and found the
> kerenl's kmalloc API also return a continuous memory address. Is it
> right? So there are two kernel APIs (__get_free_page, kmalloc) return
> a _continuous_ memory address (virtual address) and it can be convert
> to physical address by virt_to_phys().

Yes that's right, AFAIK kmap allocates physically contiguous memory
and vmalloc allocates virtual contiguous memory. Actually the 2
functions you're pointing out (__get_free_page and kmalloc) are not
independent. At its heart, the kernel allocator is page based so
kmalloc uses the same page based functions to allocate is memory -
infact the kmalloc interface is built on top of the slab layer (which
uses the page allocation functions to allocate memory), get_free_page
is just at a much lower level.

Out of curiosity, why do you need the physically addresses of the
memory you're allocating for your particular application?

Regards,
-Joel

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux