[Intel-gfx] [PATCH 2/4] drm/i915: Remove superfluous powersave work flushing

Chris Wilson chris at chris-wilson.co.uk
Thu Jul 7 10:40:02 UTC 2016


On Thu, Jul 07, 2016 at 11:34:24AM +0100, Chris Wilson wrote:
> On Thu, Jul 07, 2016 at 01:27:36PM +0300, Mika Kuoppala wrote:
> > Chris Wilson <chris at chris-wilson.co.uk> writes:
> > 
> > > Instead of flushing the outstanding enabling, remember the requested
> > > frequency to apply when the powersave work runs.
> > >
> > 
> > As all the query side values will get initialized only after the first
> > rc6 initialization is done, you will introduce a window of ~1second
> > where userspace will get uninitliazed values from sysfs reads.
> > 
> > The debugfs side with i915_frequency_info and i915_ring_freq_table
> > are fine as it is a boon that they will not force a flush and
> > show the current hardware/driver state.
> > 
> > The 'why' part of the commit message is on the thin side, so
> > I don't know if these will nullify your goals but:
> > consider leaving the flushing still in place for sysfs query
> > side or split out the rps freq value initialization from rps
> > enabling.
> 
> The why part is that sysfs currently modifies the state it is observing
> upon, and so does not faithfully report the correct values. The goal is
> correct programming of user values and not fudging them.

Perhaps clearer, all the user controls are independent of hw state, and
the rps worker in particular. They are applied only under the control of
the driver when it is transiting state, until then they are values kept
in our bookkeeping.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list