Using vmalloc in device driver code

Arun KS getarunks at gmail.com
Fri Apr 5 04:09:15 EDT 2013


Hi Neha,

On Fri, Apr 5, 2013 at 12:25 AM, neha naik <nehanaik27 at gmail.com> wrote:

> Hi All,
>  From what i have learnt vmalloc requires a minor page fault to sync the
> process page tables with the reference page tables. So, is it safe to use
> memory already allocated by vmalloc in io context/device driver code
> (especially when the io call has returned back to the device driver after
> finishing io on the device). I know that in general it is better to use
> kmalloc (for better efficiency  and so on....) but, i want to know if it is
> inaccurate to use vmalloc in this particular case and why (in terms of
> cannot service page faults in interrupt context etc)?
>
>
vmalloc doesn't result in any minor page fault. Once the page are
allocated for vmalloc, pages will reside in the main memory till released.

The only difference between kmalloc-ed and vmalloc-ed memory
is continuity of the pages in main memory.
Pages allocated using vmalloc is not suitable for purposes like dma since
it may be fragmented across main memory.. Otherwise both are same.

There is no other advantage to kmalloc over vmalloc.
HTH.

Thanks,
Arun


> Thanks in advance for your help.
>
> Regards,
> Neha
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20130405/3d67b7a1/attachment-0001.html 


More information about the Kernelnewbies mailing list