[igt-dev] [PATCH i-g-t] lib: Fix intel_get_current_physical_engine() iterator

Petri Latvala petri.latvala at intel.com
Mon Jun 3 11:19:19 UTC 2019


On Mon, Jun 03, 2019 at 11:39:25AM +0100, Tvrtko Ursulin wrote:
> 
> On 03/06/2019 11:32, Petri Latvala wrote:
> > On Mon, Jun 03, 2019 at 11:19:48AM +0100, Tvrtko Ursulin wrote:
> > > 
> > > On 29/05/2019 14:24, Chris Wilson wrote:
> > > > If we run out of engines, intel_get_current_physical_engine() degrades
> > > > into an infinite loop as although it advanced the iterator, it did not
> > > > update its local engine pointer.
> > > 
> > > We had one infinite loop in there already.. AFAIR it was on one engine
> > > platforms. Does the new incarnation happen actually via the
> > > __for_each_physical_engine iterator or perhaps only when calling
> > > intel_get_current_physical_engine after loop end? Why it wasn't seen in
> > > testing?
> > 
> > 
> > The new incarnation happens with a wedged GPU. That's a case that's
> > hard to come by in testing.
> 
> 1.
> Colour me confused. :) How does a wedged GPU affect this loop?

Wedging could be a red herring, but regardless the GPU was in a funky
state.

An easy reproduction method is just

#  ./perf_pmu

(as normal user, not root!)


-- 
Petri Latvala


More information about the igt-dev mailing list