[Intel-gfx] [PATCH 04/15] drm/i915: Cache the reset_counter for the request
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
Getting the wakeup robust though is the meat of the patch.
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx