http://bugs.freedesktop.org/show_bug.cgi?id=15203





--- Comment #26 from Roland Scheidegger <[EMAIL PROTECTED]>  2008-04-01 
13:08:32 PST ---
(In reply to comment #25)
> I know now whats happening. If the ring buffer gets low on space
> radeon_wait_ring is called. If writeback is enabled radeon_wait_ring can run
> into the -EBUSY timeout, because it's possible that during the timeout the CP
> won't update the ring pointer (few slow gpu commands in the ring buffer). Now
> the -EBUSY timeout isn't handled at all, so the ring buffer gets overwritten,
> with undefined result.
> I'm still thinking of a clever way to fix this.
Ahhh timeouts... This is actually tricky. Now, just ignoring the error and
overwriting the ring clearly is a no-no, maybe should just repeat until there's
no error (of course, not quite indefinitely as the chip may have locked up). Or
could just increase the timeout but that's ugly too.
Note that you could get the same error case even if you update the ring ptr for
every quadword read, since a single command can run for a very, very long time
(certainly with indirect buffers). Or if you'd want to submit a large chunk at
once and the ring ptr simply didn't advance enough until it hits the timeout.
(That's about what I had in mind when I mentioned it might just hide a real
bug...)


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to