Commit da5d5167 authored by Tvrtko Ursulin's avatar Tvrtko Ursulin Committed by Umesh Nerlige Ramappa

drm/i915/pmu: Transform PMU parking code to be GT based

Trivial prep work for full multi-tile enablement later.
Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: default avatarVinay Belgaumkar <vinay.belgaumkar@intel.com>
Reviewed-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Signed-off-by: default avatarUmesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230519154946.3751971-5-umesh.nerlige.ramappa@intel.com
parent 08322dab
...@@ -87,7 +87,7 @@ static int __gt_unpark(struct intel_wakeref *wf) ...@@ -87,7 +87,7 @@ static int __gt_unpark(struct intel_wakeref *wf)
intel_rc6_unpark(&gt->rc6); intel_rc6_unpark(&gt->rc6);
intel_rps_unpark(&gt->rps); intel_rps_unpark(&gt->rps);
i915_pmu_gt_unparked(i915); i915_pmu_gt_unparked(gt);
intel_guc_busyness_unpark(gt); intel_guc_busyness_unpark(gt);
intel_gt_unpark_requests(gt); intel_gt_unpark_requests(gt);
...@@ -109,7 +109,7 @@ static int __gt_park(struct intel_wakeref *wf) ...@@ -109,7 +109,7 @@ static int __gt_park(struct intel_wakeref *wf)
intel_guc_busyness_park(gt); intel_guc_busyness_park(gt);
i915_vma_parked(gt); i915_vma_parked(gt);
i915_pmu_gt_parked(i915); i915_pmu_gt_parked(gt);
intel_rps_park(&gt->rps); intel_rps_park(&gt->rps);
intel_rc6_park(&gt->rc6); intel_rc6_park(&gt->rc6);
......
...@@ -228,11 +228,11 @@ static void init_rc6(struct i915_pmu *pmu) ...@@ -228,11 +228,11 @@ static void init_rc6(struct i915_pmu *pmu)
} }
} }
static void park_rc6(struct drm_i915_private *i915) static void park_rc6(struct intel_gt *gt)
{ {
struct i915_pmu *pmu = &i915->pmu; struct i915_pmu *pmu = &gt->i915->pmu;
pmu->sample[__I915_SAMPLE_RC6].cur = __get_rc6(to_gt(i915)); pmu->sample[__I915_SAMPLE_RC6].cur = __get_rc6(gt);
pmu->sleep_last = ktime_get_raw(); pmu->sleep_last = ktime_get_raw();
} }
...@@ -247,16 +247,16 @@ static void __i915_pmu_maybe_start_timer(struct i915_pmu *pmu) ...@@ -247,16 +247,16 @@ static void __i915_pmu_maybe_start_timer(struct i915_pmu *pmu)
} }
} }
void i915_pmu_gt_parked(struct drm_i915_private *i915) void i915_pmu_gt_parked(struct intel_gt *gt)
{ {
struct i915_pmu *pmu = &i915->pmu; struct i915_pmu *pmu = &gt->i915->pmu;
if (!pmu->base.event_init) if (!pmu->base.event_init)
return; return;
spin_lock_irq(&pmu->lock); spin_lock_irq(&pmu->lock);
park_rc6(i915); park_rc6(gt);
/* /*
* Signal sampling timer to stop if only engine events are enabled and * Signal sampling timer to stop if only engine events are enabled and
...@@ -267,9 +267,9 @@ void i915_pmu_gt_parked(struct drm_i915_private *i915) ...@@ -267,9 +267,9 @@ void i915_pmu_gt_parked(struct drm_i915_private *i915)
spin_unlock_irq(&pmu->lock); spin_unlock_irq(&pmu->lock);
} }
void i915_pmu_gt_unparked(struct drm_i915_private *i915) void i915_pmu_gt_unparked(struct intel_gt *gt)
{ {
struct i915_pmu *pmu = &i915->pmu; struct i915_pmu *pmu = &gt->i915->pmu;
if (!pmu->base.event_init) if (!pmu->base.event_init)
return; return;
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <uapi/drm/i915_drm.h> #include <uapi/drm/i915_drm.h>
struct drm_i915_private; struct drm_i915_private;
struct intel_gt;
/* /*
* Non-engine events that we need to track enabled-disabled transition and * Non-engine events that we need to track enabled-disabled transition and
...@@ -151,15 +152,15 @@ int i915_pmu_init(void); ...@@ -151,15 +152,15 @@ int i915_pmu_init(void);
void i915_pmu_exit(void); void i915_pmu_exit(void);
void i915_pmu_register(struct drm_i915_private *i915); void i915_pmu_register(struct drm_i915_private *i915);
void i915_pmu_unregister(struct drm_i915_private *i915); void i915_pmu_unregister(struct drm_i915_private *i915);
void i915_pmu_gt_parked(struct drm_i915_private *i915); void i915_pmu_gt_parked(struct intel_gt *gt);
void i915_pmu_gt_unparked(struct drm_i915_private *i915); void i915_pmu_gt_unparked(struct intel_gt *gt);
#else #else
static inline int i915_pmu_init(void) { return 0; } static inline int i915_pmu_init(void) { return 0; }
static inline void i915_pmu_exit(void) {} static inline void i915_pmu_exit(void) {}
static inline void i915_pmu_register(struct drm_i915_private *i915) {} static inline void i915_pmu_register(struct drm_i915_private *i915) {}
static inline void i915_pmu_unregister(struct drm_i915_private *i915) {} static inline void i915_pmu_unregister(struct drm_i915_private *i915) {}
static inline void i915_pmu_gt_parked(struct drm_i915_private *i915) {} static inline void i915_pmu_gt_parked(struct intel_gt *gt) {}
static inline void i915_pmu_gt_unparked(struct drm_i915_private *i915) {} static inline void i915_pmu_gt_unparked(struct intel_gt *gt) {}
#endif #endif
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment