![]() | |||||||||||||
Messages in this thread |
> I am getting some problems with kmalloc. If I tried to > allocate more than certain memory then the system is > hanging while booting with the changed kernel. Can you > suggest me how to come out this situation. Can't I> allocate as much I want when I want to allocate in the > kernel. kmalloc() allocates physically-contiguous pages of memory. Due to fragmentation, more than 64KB-128KB of contiguous pages might not be available, and hence kmalloc() will fail. To allocate more memory, use vmalloc(), which allocates and maps physically disjoint pages into a virtually-contiguous region. Be careful when doing DMA to a vmalloc() area, since it is not physically contiguous and exists only in the kernel's virtual memory map... Also I believe vmalloc()ed memory is only accessible from (the context of) the process in which it was allocated (?). Regards, Dan - 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/ | ||||||||||||
| Last update: 2005-03-22 13:25 [from the cache] ©2003-2008 | |||||||||||||