[igt-dev] [Intel-gfx] [PATCH i-g-t v7] tests/perf_pmu: Improve accuracy by waiting on spinner to start

Chris Wilson chris at chris-wilson.co.uk
Mon Mar 19 15:29:21 UTC 2018


Quoting Tvrtko Ursulin (2018-03-19 13:56:05)
> @@ -443,15 +501,12 @@ most_busy_check_all(int gem_fd, const struct intel_execution_engine2 *e,
>                 if (!gem_has_engine(gem_fd, e_->class, e_->instance))
>                         continue;
>  
> -               if (e == e_) {
> +               if (e == e_)
>                         idle_idx = i;
> -               } else if (spin) {
> -                       __submit_spin_batch(gem_fd, &obj, e_);
> -               } else {
> -                       spin = igt_spin_batch_new(gem_fd, 0,
> -                                                 e2ring(gem_fd, e_), 0);
> -                       obj.handle = spin->handle;
> -               }
> +               else if (spin)
> +                       __submit_spin_batch(gem_fd, spin, e_);
> +               else
> +                       spin = __spin_poll(gem_fd, 0, e2ring(gem_fd, e_));

So this is what is killing snb. We resubmit the spin-batch, with its
MI_STORE_DWORD_IMM intact, onto each ring. Instant machine death for snb
when we reach vcs.

If we tweak the spinner to jump to a location 64bytes past the start, we
can opt out of the MI_STORE_DW when not required. Let me go an cook up a
delta.
-Chris


More information about the igt-dev mailing list