Re: ZONE_DMA

Jesse Barnes
2006-09-22T18:39:26Z

On Friday, September 22, 2006 11:32 am, Christoph Lameter wrote:
> On Fri, 22 Sep 2006, Jesse Barnes wrote:
> > Oh, it's already there in the tree, but obviously some drivers still
> > need to be converted. See Documentation/DMA-API.txt. It's not PCI
> > specific like the old PCI DMA interface
> > (Documentation/DMA-mapping.txt) and provides a way for drivers to
> > specify their addressing limitations (dma_supported and dma_set_mask),
> > which allows the underlying architecture code to report a failure if
> > necessary.
>
> AFAICT this is dealing with special dma issues and not with the problem
> of allocating memory for a certain supported address range from the page
> allocator.

That's right. But OTOH device drivers shouldn't be using the page
allocator to get DMAable memory, they should be using one of the DMA APIs
since only they can portably map memory for DMA.

> From the first glance at the docs it looks as if it is
> relying on __GFP_DMAxx to get the allocations right. I think the code
> could be changed though to call a new page allocator function to get the
> right memory and that would work for all devices using that API.

Right, the internals are arch specific and don't necessarily have to rely
on a zone, depending on their DMA constraints.

Jesse