Hi, -I am currently working on one embedded development board. -I have ported 3.0.31 kernel with my personal patches on it. -When I am trying to insert my module, it fails to allocate 4MB memory using kmalloc. -Below is a snapshot of *cat /proc/meminfo *command of my embedded linux system. [image: Inline image 1] -According to my understanding, LowFree parameter indicates free memory in kernel space which is around 536MB in this case. -There is a lot free space available in kernel space then why module fails in kmalloc of 4MB ? -Also find the attached log messages of dmesg Regards, Mehul
On 10-Dec-2014, at 10:18 pm, PRAJAPATI MEHUL <mehulprajapati2802@gmail.com> wrote:
Hi,
-I am currently working on one embedded development board. -I have ported 3.0.31 kernel with my personal patches on it.
-When I am trying to insert my module, it fails to allocate 4MB memory using kmalloc.
-Below is a snapshot of cat /proc/meminfo command of my embedded linux system.
<Selection_001.png>
-According to my understanding, LowFree parameter indicates free memory in kernel space which is around 536MB in this case.
-There is a lot free space available in kernel space then why module fails in kmalloc of 4MB ?
-Also find the attached log messages of dmesg
Regards, Mehul
<dmesg.log>_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
My 2 Cents. Your dmesg says it cannot allocate 2^10 * PAGESIZE (what ever the pagesize is). At first glance it looks like memory fragmentation. Over time allocations will split to a point it will fail a request because of lake of continous pages. Have a look what your /proc/buddyinfo says. Try out with vmalloc (just for exercise) or try your module just after machine reboot. Please also note there is a limit on kmalloc, how much it can allocate at single go. Thanks Arshad
On 13-Dec-2014 2:27 AM, "PRAJAPATI MEHUL" <mehulprajapati2802@gmail.com> wrote:
Hi,
-I am currently working on one embedded development board. -I have ported 3.0.31 kernel with my personal patches on it.
-When I am trying to insert my module, it fails to allocate 4MB memory
using kmalloc.
-Below is a snapshot of cat /proc/meminfo command of my embedded linux
system.
-According to my understanding, LowFree parameter indicates free memory
in kernel space which is around 536MB in this case.
-There is a lot free space available in kernel space then why module fails in kmalloc of 4MB ?
You are asking 4MiB of contiguous memory that to physically contiguous. In all probability you might want to use vmalloc if you need contiguous but not physically. Better to use alloc_pages to get pages instead but still no guarantees on your order. Can you tell more about what you are trying to do?
-Also find the attached log messages of dmesg
Regards, Mehul
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
participants (3)
-
Arshad Hussain -
PRAJAPATI MEHUL -
Pranay Srivastava