Re: seems ttm_bo_handle_move_mem not flush cache, if BO move SYS->VRAM?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

or there's no need to do this? (clflush those pages that not in cpu
cache not cost too much?)


Thank you

2010/12/2 Thomas Hellstrom<thomas@xxxxxxxxxxxx>:
On 12/01/2010 04:58 AM, april wrote:
hi all:

I have a question:

If a BO in VRAM (WC) evict to SYS memory(may be cached),  and user
process still can access it event it is in SYS memory (may be cached)
.
when this BO volidate to VRAM,  It seems "ttm_bo_handle_move_mem"  not
flush cache (If evict to SYS memory with cached).

  But flush cache is needed, If driver use DMA to handle BO
move(SYS->VRAM), should "ttm_bo_handle_move_mem" handle this? or
driver do it in "driver->move_notify" before "driver->move" called?


April, in order to understand your proble, Can you be a bit more specific
about.

1) Which cache should be flushed? Cpu cache or GPU cache.

2) Why should it be flushed? For CPU caches, TTM only flushes when
transitioning the same page from cached to write-combined. If you use DMA
from system memory to VRAM, and need to flush the system pages before
performing the DMA operation, that should be done in the driver move
function.

/Thomas


Thanks
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel



_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux