On Thu, Dec 2, 2010 at 2:35 AM, Thomas Hellstrom <thomas@xxxxxxxxxxxx> wrote: > On 12/02/2010 03:49 AM, april wrote: >> >> thanks Thomas >> >> I want to flush CPU cache, before use DMA from system memory to VRAM. >> >> Seems I should do this in driver move function itself. >> > > Yes. That's the right way. > >> bty, >> when BO changes from cached to write-combined, CPU cache will be >> flushed, and all the pages in this BO will do this. >> but, may be only a small part of page's cache flush is really >> needed(CPU just write to a few pages in BO). >> >> Is there any ways to solve this? >> > > Unfortunately not at the moment. It would require tracking of dirty pages in > TTM and that is on my to-do list, but that also requries changes to the > linux kernel VM system. At the moment I'm not completely sure how costly a > clflush is for a cache line that's not in the CPU cache. > > For BOs that are almost only written to, you should try to keep also system > pages write-combined. In that case they are allocated write-combined from > the TTM memory pool and the cache changing doesn't need to occur. > > /Thomas > Note that clflush is only available on cpu with sse2 iirc. April also most of today GPU can do cache coherent DMA on PCI/PCIE (ie no need to flush cache or write-combined page), may i ask what is the GPU you are working on ? Cheers, Jerome _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel