diff mbox series

[i-g-t] i915/perf_pmu: Update inter-engine semaphore detection

Message ID 20200526141723.401469-1-chris@chris-wilson.co.uk (mailing list archive)
State New, archived
Headers show
Series [i-g-t] i915/perf_pmu: Update inter-engine semaphore detection | expand

Commit Message

Chris Wilson May 26, 2020, 2:17 p.m. UTC
The kernel no longer uses semaphores between engines, unless it can do
so by preempting them with timeslices. Update the semaphore-busy to only
run when we expect semaphore usage, i.e. not on bdw/bsw.

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1939
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/perf_pmu.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Tvrtko Ursulin May 26, 2020, 3:58 p.m. UTC | #1
On 26/05/2020 15:17, Chris Wilson wrote:
> The kernel no longer uses semaphores between engines, unless it can do
> so by preempting them with timeslices. Update the semaphore-busy to only
> run when we expect semaphore usage, i.e. not on bdw/bsw.
> 
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1939
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>   tests/perf_pmu.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> index e54a0d47e..e80f730cf 100644
> --- a/tests/perf_pmu.c
> +++ b/tests/perf_pmu.c
> @@ -822,6 +822,7 @@ sema_busy(int gem_fd,
>   	int fd;
>   
>   	igt_require(gem_scheduler_has_semaphores(gem_fd));
> +	igt_require(gem_scheduler_has_preemption(gem_fd));
>   
>   	fd = open_group(gem_fd,
>   			I915_PMU_ENGINE_SEMA(e->class, e->instance), -1);
> 

Test with perhaps too intimate knowledge of i915..

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko
Chris Wilson May 26, 2020, 4:05 p.m. UTC | #2
Quoting Tvrtko Ursulin (2020-05-26 16:58:05)
> 
> On 26/05/2020 15:17, Chris Wilson wrote:
> > The kernel no longer uses semaphores between engines, unless it can do
> > so by preempting them with timeslices. Update the semaphore-busy to only
> > run when we expect semaphore usage, i.e. not on bdw/bsw.
> > 
> > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1939
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > ---
> >   tests/perf_pmu.c | 1 +
> >   1 file changed, 1 insertion(+)
> > 
> > diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> > index e54a0d47e..e80f730cf 100644
> > --- a/tests/perf_pmu.c
> > +++ b/tests/perf_pmu.c
> > @@ -822,6 +822,7 @@ sema_busy(int gem_fd,
> >       int fd;
> >   
> >       igt_require(gem_scheduler_has_semaphores(gem_fd));
> > +     igt_require(gem_scheduler_has_preemption(gem_fd));
> >   
> >       fd = open_group(gem_fd,
> >                       I915_PMU_ENGINE_SEMA(e->class, e->instance), -1);
> > 
> 
> Test with perhaps too intimate knowledge of i915..

iirc, part of the intent of the test was to understand how the kernel's
choice of inter-engine sync would show up in the pmu. The challenge we
have is in declaring the expected outcomes, that requires intimate
knowledge of what the kernel might decide to do.
-Chris
diff mbox series

Patch

diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
index e54a0d47e..e80f730cf 100644
--- a/tests/perf_pmu.c
+++ b/tests/perf_pmu.c
@@ -822,6 +822,7 @@  sema_busy(int gem_fd,
 	int fd;
 
 	igt_require(gem_scheduler_has_semaphores(gem_fd));
+	igt_require(gem_scheduler_has_preemption(gem_fd));
 
 	fd = open_group(gem_fd,
 			I915_PMU_ENGINE_SEMA(e->class, e->instance), -1);