[Intel-gfx] [PATCH 04/15] drm/i915: Cache the reset_counter for the request

Chris Wilson chris at chris-wilson.co.uk
Tue Dec 1 01:15:35 PST 2015


On Tue, Dec 01, 2015 at 08:47:44AM +0000, Chris Wilson wrote:
> On Tue, Dec 01, 2015 at 09:31:31AM +0100, Daniel Vetter wrote:
> > On Sun, Nov 29, 2015 at 08:48:02AM +0000, Chris Wilson wrote:
> > > Instead of querying the reset counter before every access to the ring,
> > > query it the first time we touch the ring, and do a final compare when
> > > submitting the request. For correctness, we need to then sanitize how
> > > the reset_counter is incremented to prevent broken submission and
> > > waiting across resets, in the process fixing the persistent -EIO we
> > > still see today on failed waits.
> > > 
> > > v2: Rebase
> > > v3: Now with added testcase
> > > v4: Rebase
> > > 
> > > Testcase: igt/gem_eio
> > > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> > 
> > Imo you really can't hide an ABI change in a refactor/optimize patch like
> > this ... I really think moving check_wedge out of wait_request must be
> > it's own little patch.
> 
> Urm, that is the essential part of the patch in this series.

Ok, no it's not. The key is having the request->reset_counter. I was
thinking that the wakeup logic had to be the same in both - which is
true, but that doesn't restrict how the wakeup is then propagated from
i915_wait_request.

Getting the wakeup robust though is the meat of the patch.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list