Thread (22 messages) flat view 22 messages, 6 authors, 2014-09-04

Re: TTM placement & caching issue/questions

From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2014-09-04 07:54:56

On Thu, 2014-09-04 at 16:19 +0900, Michel Dänzer wrote:
quoted
+#else /* CONFIG_X86 */
+int ttm_tt_set_placement_caching(struct ttm_tt *ttm, uint32_t
*placement)
quoted
+{
+     if (*placement & (TTM_PL_TT | TTM_PL_FLAG_SYSTEM)) {
+             ttm->caching_state = tt_cached;
+             *placement &= ~TTM_PL_MASK_CACHING;
+             *placement |= TTM_PL_FLAG_CACHED;
NAK, this will break AGP on PowerMacs.
 ... which doesn't work reliably anyway with DRI2 :-)

The problem is ... with DRI1 I think we had tricks to take out the
AGP from the linear mapping but that want away, didn't we ?

In any case, we are playing with fire on these by allowing the
cache paradox. It just happens that those old CPUs aren't *that*
aggressive at speculative prefetch and we probably rarely hit the
lockups that they would cause...

Michel, what do you recommend we do then ? The patch I sent to
double check in ttm_io_prot() has a specific hack to avoid warning
on PowerMac for the above reason, but we need to fix Jerome if we
want to keep that broken-by-design Mac AGP functionality going :-)

Maybe we could add a similar ifdef in the above ?

Cheers,
Ben.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help