Are there some potential problems that I should be aware of if I allocate the memory which doesn't have any relation to peripheral hardwares(i.e. DMA, PCI, serial port and etc) by vmalloc() instead of kmalloc()?

Greg KH greg at kroah.com
Fri Jun 26 10:13:19 EDT 2020


On Fri, Jun 26, 2020 at 04:30:48PM +0800, 孙世龙 sunshilong wrote:
> Hi, list
> 
> Besides kmalloc() is more efficient, are there some potential problems that
> I should be aware of if I allocate the memory which doesn't have any
> relation to peripheral hardwares(i.e. DMA,PCI,serial port and etc) by
> vmalloc() instead of kmalloc() to avoid the page allocation failure(caused
> by kmalloc() while there are too much memory fragment)?

It all depends on what you want to do with that memory.

Why are you having so many issues in allocating memory?  Does the kernel
not provide enough different ways to do this for your driver/device/use
case?

If not, what are you trying to do that is not fitting with the existing
interfaces?

thanks,

greg k-h



More information about the Kernelnewbies mailing list