Subject: Re: problems with dma_alloc_coherent and consistent_alloc

From: Marcelo Tosatti <[email-masked]>
Date: Wed, 5 Oct 2005 20:05:32 -0300

On Wed, Oct 05, 2005 at 02:21:01PM -0700, Earl Olsen wrote:
> 
> (Sorry, I had trouble outlook and messed up the subject line)
> 
> We are using a PPC 750 with 512m of RAM.

I dont know much about your hardware, but I'll shoot anyway.

> 1) When we try to allocate memory using consistent_alloc we get a 
> failure with get_pteptr - there is no pte.  
> 
> 2) When we try using dma_alloc_coherent the system locks up when
> we try to access that memory.
> 
> I'm guessing these problems stem from the memory being allocated
> is from the 384 bytes of RAM that gets handed over to BATs 2 AND 3,

You mean Mbytes?

> not the remaining memory handled by the page table.
> 
> In the first case, pages are allocated, but since if came from the
> BAT region, will not have a page table mapping.
> 
> In the second case, if dma_alloc_init gets memory from the BAT
> region, then we have the BAT and page management mechanisms
> both trying to control the memory.
> 
> Does this sound like a good theory?  Has anybody encountered
> this problem before?

The kernel should create pte tables for all RAM, even if parts of 
memory are not accessed through pagetable mappings.