> > Theoretically, it must be possible to just move some adjacent pages out of
> > <16MB memory area, update the page tables and use that freed memory as DMA
> > memory henceforth, when DMA memory is requested.
>
> That's fine if you can find the appropriate pages. There are always
> risks concerning finding kernel data pages, slab pages, page table
> pages or mlock()ed pages, none of which can be relocated. As a
> result, the larger a region you are searching for, the harder it is to
> satisfy.
>
Well, I bet there are at any time much more swappable (user) pages than
non-swappable pages in the <16MB area. And after all, a few pages are
enough for doing DMA transfers as the DMA controller can do no more than
128KB at a time AFAIK. (at least on Intel architectures, and that's what
this is all about)
I can't imagine kernel pages using more than 4MB of memory
altogether (including page tables which don't neccessarily have to be in
the lower part of the memory)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/