vmalloc() may allocate non-contiguous physical memory and map it to contiguous kernel virtual address.

For eg. if you ask for 10 page frames of physical memory i.e. 10 * 4K, vmalloc() will scout for 10 page frames of physical memory, they need not be contiguous,
and map them to contiguous kernel virtual address (last 128 MB of virtual address in a 3G/1G partition, assuming >= 1GB of RAM)

 This could be of some help and is also somewhat extension of your question
https://lists.kernelnewbies.org/pipermail/kernelnewbies/2011-June/002335.html


On Tue, Sep 6, 2016 at 8:12 PM, Er Krishna <erkrishna@gmail.com> wrote:

> Hi all
>
> I have one confusion, so asking this question for understanding:
>
> Vmalloc return address are virtually contiguous or not ?
>
> Basically vmalloc return non contiguous memory from ram which may not be one to one mapped in process kernel address space .
>
> Is my above understanding correct?
>
> Thanks
> Krishna


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




--
Regards,
Prabhunath G
Linux Trainer
Bangalore