Radeon R700 multi-ring bug

Christian König deathsimple at vodafone.de
Sat Apr 19 02:54:13 PDT 2014


Hi Marek,

I've noticed this before as well, and I agree that it looks like a 
memory corruption. Not sure if the async DMA on the GPU or the CPU is 
overwriting something because of a race condition or something like this.

Anyway, can you come up with a simple test case to reproduce the issue? 
For me it occurred only randomly while working on UVD support for R7xx. 
If you have something more reliable I could dig into it with my RV710.

Christian.

Am 19.04.2014 01:48, schrieb Marek Olšák:
> Hi,
>
> If you submit a lot of graphics and DMA IBs interleaved, the graphics
> CS checker sometimes fails with this message:
>
> [ 3846.435661] Forbidden register 0x0014 in cs at 9
> [ 3846.435664] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream !
>
> This error is only used for type-0 packets, but we don't use these
> packets on R700 at all. Somehow, the graphics CS checker received
> either the DMA IB or random garbage. My guess is there is memory
> corruption happening during IB uploading and/or IB checking in the
> kernel. Also, if you are unlucky, the GPU hangs instead.
>
> The CS thread offloading was disabled in Mesa, so the user space was
> single-threaded.
>
> There are 2 ways to fix this:
> - disable async DMA in Mesa
> - call usleep(1) after the RADEON_CS ioctl returns
>
> This is just a heads-up. In the worst case, we can disable async DMA
> for R700 in Mesa.
>
> Marek
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



More information about the dri-devel mailing list