Messages in this thread | | | Date | Sat, 12 Apr 2003 01:52:44 +0530 | From | "Sriram Narasimhan" <> | Subject | GFP_KERNEL doubt!! <was Tasklet doubt!> |
| |
Hello,
The problem of allocating more than 2.5 MB was actually more or less related to the physical memory left in the kernel. But I moved the task which allocated the memory from the tasklet to the keventd and used kmalloc (GFP_KERNEL).
The first time I ran my module, it failed at the same 2.5 MB limit. I restarted the system and tried it again, and I was able to allocate 5 MB successfully. I restarted the system and ran "free". The report is as follows: total used free shared buffers cached Mem: 62264 30624 31640 0 8072 16096 -/+ buffers/cache: 6456 55808 Swap: 192772 0 192772
Then I ran gcc and compiled my code and then for the "free" report again. The report is as follows: total used free shared buffers cached Mem: 62264 45320 16944 0 9256 28384 -/+ buffers/cache: 7680 54584 Swap: 192772 0 192772
I was able to notice that the physical memory had gone down though "gcc" had completed. The time I ran my application, I had about 2.5M physical memory left, so I was able to allocate 2.5M.
What is happening ? What is the buffers/cache column and is there any way I could force the kernel to release the cached memory back to free physical ? Is there any way I can allocate more than what is left free from the physical memory ?
Any pointers or suggestions would be very helpful.
Thank you. Regards, Sriram
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |