On Thu, Jun 11, 2015 at 4:26 PM, Catalin Marinas <catalin.mari...@arm.com> wrote: > On Wed, Jun 10, 2015 at 09:34:43PM +0200, Lorenzo Nava wrote: >> On Wed, Jun 10, 2015 at 6:28 PM, Catalin Marinas >> <catalin.mari...@arm.com> wrote: >> > On Wed, Jun 03, 2015 at 07:15:45PM +0200, Lorenzo Nava wrote: >> > > This patch allows the use of CMA for DMA coherent memory allocation. >> > > At the moment if the input parameter "is_coherent" is set to true >> > > the allocation is not made using the CMA, which I think is not the >> > > desired behaviour. >> > > >> > > Signed-off-by: Lorenzo Nava <lorenx4@xxxxxxxx> > [...] >> > So while you allow __alloc_from_contiguous() to be called when >> > is_coherent, the memory returned is still non-cacheable. The reason is >> > that the "prot" argument passed to __dma_alloc() in >> > arm_coherent_dma_alloc() is pgprot_dmacoherent(PAGE_KERNEL) which means >> > Normal NonCacheable memory. The mmap seems to create a cacheable mapping >> > as vma->vm_page_prot is not passed through __get_dma_pgprot(). > [...] >> Well the final scope of this patch is just to fix what in my opinion >> is an incorrect behaviour: the lack of use of CMA when the flag >> "is_coherent" is set. > > But you still have to fix it properly: "is_coherent" means cacheable > memory which you don't get with your patch. > >> Of course it still exists the problem of modify the attribute to make >> the memory cacheable, but it is something I would like to do in a >> second step (the patch you posted is of course a good starting point). > > So between the first and the second step, you basically break > dma_alloc_coherent() by moving the allocation from > __alloc_simple_buffer() (returning cacheable memory) to > __alloc_from_contiguous() which changes the memory attributes to > whatever __get_dma_pgprot() returned (currently Normal Non-cacheable). >
Ok, sorry, now I've understood: __alloc_simple_buffer just doesn't consider the attributes set in arm_coherent_dma_alloc() or arm_dma_alloc() functions. So, as you already correctly pointed out, I have to keep cacheability attributes coherent even using the CMA. I will update my patch and submit a new version. Thank you. Lorenzo > -- > Catalin -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/