> 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/
This archive was generated by hypermail 2b29 : Sat Mar 23 2002 - 22:00:20 EST