[igt-dev] [PATCH i-g-t] igt/gem_exec_await: Tag the final batch in the GTT

Katarzyna Dec katarzyna.dec at intel.com
Fri Jun 8 08:19:13 UTC 2018


On Fri, Jun 08, 2018 at 08:57:15AM +0100, Chris Wilson wrote:
> Quoting Katarzyna Dec (2018-06-08 08:36:35)
> > On Thu, Jun 07, 2018 at 04:27:22PM +0100, Chris Wilson wrote:
> > > Batches are contained in their position within the GTT by the kernel,
> > > and if they are in an invalid poistion will be unbound and rebound
> > > before execution. In our test setup, we therefore need to place the
> > > batch into a valid poistion within the GTT before we fill the ring with
> > > busyspinners.
> > > 
> > > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > Reviewed-by: Katarzyna Dec <katarzyna.dec at intel.com>
> 
> Sorry for being curt on irc, not enough coffee.
> 
> The problem entirely lies in how we are constructing our set of busy
> spinning batches. We try to fill the ring with a chain of batches that
> are all linked to one buffer, and then try to execute that buffer. This
> gives us the most implicit fences on that one buffer we can trivially
> construct; with the goal being that the kernel handles them all with
> aplomb. However, what we failed to take into account was that we might
> end up with that final buffer being at address 0, which is in an invalid
> location to execute from (because reasons) and the kernel would be
> forced to move it. However, since we have a ring full of busy spinners
> all using that buffer, we can not move that buffer until we wait for the
> queue to complete -- which it never will and so we declare a GPU hang,
> failing the test.
> -Chris

I guess I as well had issues with lack of caffeine this morning and somehow
was not persistent enough to inquire this patch :)
Thanks for clarification :)
Kasia


More information about the igt-dev mailing list