drm/i915/pmu: Use PM timestamp instead of RING TIMESTAMP for reference
authorUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Tue, 11 Jan 2022 01:55:23 +0000 (17:55 -0800)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 31 Jan 2022 09:35:05 +0000 (09:35 +0000)
commitb3f74938d65665f892d1b7807c51140f68dc911c
treeaaa8959506bd7b0e16ccd373093368af074dd8a5
parent90a3d22ff02b196d5884e111f39271a1d4ee8e3e
drm/i915/pmu: Use PM timestamp instead of RING TIMESTAMP for reference

All timestamps returned by GuC for GuC PMU busyness are captured from
GUC PM TIMESTAMP. Since this timestamp does not tick when GuC goes idle,
kmd uses RING_TIMESTAMP to measure busyness of an engine with an active
context. In further stress testing, the MMIO read of the RING_TIMESTAMP
is seen to cause a rare hang. Resolve the issue by using gt specific
timestamp from PM which is in sync with the GuC PM timestamp.

Fixes: 77cdd054dd2c ("drm/i915/pmu: Connect engine busyness stats from GuC to pmu")
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220111015523.225562-1-umesh.nerlige.ramappa@intel.com
(cherry picked from commit 721fd84ea1fe957453587efad5fdc44dfba58e04)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
drivers/gpu/drm/i915/gt/uc/intel_guc.h
drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
drivers/gpu/drm/i915/i915_reg.h