Messages in this thread |  | | Date | Tue, 5 Nov 1996 22:41:34 +0000 (GMT) | From | Gerard Roudier <> | Subject | Re: Module loading (2.0.24) fails with "Unable to allocate DMA memory" |
| |
On Mon, 4 Nov 1996, Jean Francois Martinez wrote:
> > When trying to load the floppy module I got "Unable to allocate DMA > memory". Kernel 2.0.24. Exiting a couple of programs returns things > to normal. In a general way when loading a module we need DMAable > memory (ie physically contiguous and under 16 Megs barreer) but we are > not under time pressure. Linux should be able to swap out some > process in order to get space for its DMA memory. I don't know if the
Initial allocations are generally done with GFP_ATOMIC priority. With that priority, it is not possible to wait for swapping, so such allocation may fail. A driver that need memory must be able to try later its memory allocations. If it is not able to do that, it is buggy. That is my opinion.
> problem is: Linux is supposed to make space but doesn't or if the DMA > memory category does not fit and we need a GFP_DMAABLE category where > we try to get memory fit for DMA but we can swap.
Using modules is great and allow us to spare memory and to have a shorter kernel. However, ve must be aware that some drivers may have problems of memory shortage when they are loaded. It is indeed the case for those which need contiguous memory at initialisation or use ISA DMA.
ISA DMA is in my opinion some kind of bottleneck and may decrease performances a lot. Use PCI interfaces each time it is possible for you.
Gerard.
|  |