Re: [PATCH 00/49] Execlists

Daniel Vetter
2014-04-07T21:32:04Z

On Mon, Apr 7, 2014 at 8:12 PM, Damien Lespiau <damien.lespiau@intel.com> wrote:
>> This patch series implement execlists for GEN8+. Before continuing, it
>> is important to mention that I might have taken upon myself to
>> assemble the series and rewrite it for upstreaming, but many people
>> have worked on this series before me.
>
> Two more things before I forget:
>
> - The error reporting seems broken and doesn't report the ring buffers
> content nor the correct per-ring register, from a cursory glance
> (fairly important, we can't go live without good error state
> support)

I think we should finally go ahead an have a somewhat functional
testcase for the error state dumper. Here's what I have in mind which
at least guarantees that shit works at a _very_ basic level:

1. Allocate gem object, use it as a noop batch.
2. Take note of the presumed offset returned by the kernel
3. Write some cookie value at the end of the noop batch.
4. Hang rings with the igt/debugfs stop rings architecture.
5. Launch batch, block on completion.
6. Check that the hang was properly detected (i.e. stop_rings cleared).
7. Read error state and check that the batch objects for your ring
contains the cookie and check that the ring objects contains a reloc
with MI_BB_START for your presumed batch object's address. The kernel
shouldn't have moved the object around.

Repeat as subtest for all rings like we do with all the other per-ring tests.

I'll do a JIRA out of this tomorrow blocking execlists, so consider
yourself signed up ;-)

Cheers, Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch