Francisco Jerez wrote: > Sorry for bringing this up again with nothing new to say, but it's still > a problem (on nouveau it usually triggers a slow CPU-based eviction > fallback). Thomas: Are you OK with this patch? > >
Sorry, I've missed this patch. So is the problem that the core kernel complains if you try to move directly from wc to uc? In that case it looks OK to me: Acked-by: Thomas Hellstrom <[email protected]> > >> Fixes errors like: >> >>> reserve_ram_pages_type failed 0x15b7a000-0x15b7b000, track 0x8, req 0x10 >>> >> when a BO is moved between WC and UC areas. >> >> Reported-by: Xavier Chantry <[email protected]> >> Signed-off-by: Francisco Jerez <[email protected]> >> --- >> drivers/gpu/drm/ttm/ttm_tt.c | 23 ++++++++++++++++------- >> 1 files changed, 16 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c >> index 9c2b1cc..e2123af 100644 >> --- a/drivers/gpu/drm/ttm/ttm_tt.c >> +++ b/drivers/gpu/drm/ttm/ttm_tt.c >> @@ -198,17 +198,26 @@ EXPORT_SYMBOL(ttm_tt_populate); >> static inline int ttm_tt_set_page_caching(struct page *p, >> enum ttm_caching_state c_state) >> { >> + int ret = 0; >> + >> if (PageHighMem(p)) >> return 0; >> >> - switch (c_state) { >> - case tt_cached: >> - return set_pages_wb(p, 1); >> - case tt_wc: >> - return set_memory_wc((unsigned long) page_address(p), 1); >> - default: >> - return set_pages_uc(p, 1); >> + if (get_page_memtype(p) != -1) { >> + /* p isn't in the default caching state, set it to >> + * writeback first to free its current memtype. */ >> + >> + ret = set_pages_wb(p, 1); >> + if (ret) >> + return ret; >> } >> + >> + if (c_state == tt_wc) >> + ret = set_memory_wc((unsigned long) page_address(p), 1); >> + else if (c_state == tt_uncached) >> + ret = set_pages_uc(p, 1); >> + >> + return ret; >> } >> #else /* CONFIG_X86 */ >> static inline int ttm_tt_set_page_caching(struct page *p, >> -- >> 1.6.4.4 >> ------------------------------------------------------------------------------ The Planet: dedicated and managed hosting, cloud storage, colocation Stay online with enterprise data centers and the best network in the business Choose flexible plans and management services without long-term contracts Personal 24x7 support from experience hosting pros just a phone call away. http://p.sf.net/sfu/theplanet-com -- _______________________________________________ Dri-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/dri-devel
