[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