[igt-dev] [PATCH i-g-t 0/5] Update IGT tests to support new engine busyness interface

Umesh Nerlige Ramappa umesh.nerlige.ramappa at intel.com
Fri Sep 22 21:52:28 UTC 2023


MTL introduces a new mechanism to query engine busyness from GuC that is less
error prone and does not need the KMD to extend counters to 64 bits. This means
KMD can get rid of the worker that regularly updates counters to 64 bits and is
a simpler implementation.

GuC provides 2 counters to calculate busyness:

(1) xxxx-busy-ticks that provides engine busyness in ticks
(2) total-active-ticks[-gtN] that provides how long the gt has been active

The 2 values enable user to calculate the busyness % as follows:

busyness % = (delta xxxx-busy-ticks * 100) / (delta total-active-ticks)

Update IGT tests to use this new interface.

While this simplifies the implemantation and reduces a bunch of races that
existed with current upstream version, the granularity for the active busyness
of an engine is now 100 ms. Any higher granularity will add overhead to GuC
since GuC is periodically updating this busyness.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>

Umesh Nerlige Ramappa (5):
  i915/pmu: Add helpers to convert ticks to ns
  i915/pmu: Pass config directly to the init test
  i915/pmu: Switch to new busyness counter if old one is unavailable
  lib/i915: Export engine to gt mapping
  i915/pmu: Add a new test to use total_active_ticks for busyness

 lib/i915/gem_engine_topology.c |   2 +-
 lib/i915/gem_engine_topology.h |   1 +
 lib/i915/i915_drm_local.h      |  10 ++
 tests/intel/perf_pmu.c         | 276 +++++++++++++++++++++++++++------
 4 files changed, 241 insertions(+), 48 deletions(-)

-- 
2.38.1



More information about the igt-dev mailing list