On Mon, 2012-03-19 at 23:11 +0800, Scott Fang wrote: > In function ttm_tt_set_caching > ,,,,,,, > > if (ttm->caching_state == tt_cached) > drm_clflush_pages(ttm->pages, ttm->num_pages); > > for (i = 0; i < ttm->num_pages; ++i) { > cur_page = ttm->pages[i]; > if (likely(cur_page != NULL)) { > ret = ttm_tt_set_page_caching(cur_page, > ttm->caching_state, > c_state); > if (unlikely(ret != 0)) > goto out_err; > } > } > > ttm->caching_state = c_state; > > return 0; > > > drm_clflush_pages flush cache one time. > then in the following function > ttm_tt_set_page_caching->set_memory_wc->change_page_attr_set: in this > function may flush page cache again. > > Does the code do some abundant flush, or there is some trick to these > codes? > > Thanks for the answer in advance. Yes there might be redundant flushing. Cheers, Jerome _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel