[Intel-gfx] [PATCH i-g-t v2] pm_rps: Changes in waitboost scenario

Chris Wilson chris at chris-wilson.co.uk
Mon Aug 21 11:29:31 UTC 2017


Quoting Dec, Katarzyna (2017-08-21 11:43:35)
> I just saw comments for the code (in first patch version)
> 
> >  static void boost_freq(int fd, int *boost_freqs)  {
> >         int64_t timeout = 1;
> > -       int ring = -1;
> >         igt_spin_t *load;
> > +       unsigned int engine;
> >  
> > -       load = igt_spin_batch_new(fd, ring, 0);
> > -
> > +       /* put boost on the same engine as low load */
> > +       engine = I915_EXEC_RENDER;
> > +       if (intel_gen(lh.devid) >= 6)
> > +               engine = I915_EXEC_BLT;
> > +       load = igt_spin_batch_new(fd, engine, 0);
> 
> >Something to note is that spin-batch will also force the GPU to maximum.
> So we can get rid of gem_wait in this case?

No. Since the test is all about the wait -> boost scenario, not that
high load generates high cocks.
 
> >You could set the boost freq > max freq to differentiate
> What do you mean by that?

If you set the max freq to less than the boost freq, the only way to get
to the boost freq is via the wait, and through the ordinary system load.
It is another way to prove that boosting is in effect, and also the
independence of the control knobs.

> >         /* Waiting will grant us a boost to maximum */
> >         gem_wait(fd, load->handle, &timeout);
> >  
> >         read_freqs(boost_freqs);
> >         dump(boost_freqs);
> > +       igt_assert_eq(is_in_boost(), 1);
> 
> >Will fail on older kernels.
> This assert was changed in v2 to igt_assert(). Will this also fail on older kernels? If yes, why?

The field you are looking for is a recent addition to the file. Within
reason, we expect igt to be agnostic of kernel version (aiming for
forwards compatibility with future kernels for minimum effort, and
backwards for maximum coverage). Sometimes we can't write the test we
want without relying on a new kernel.
-Chris


More information about the Intel-gfx mailing list