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

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

parent 08322dab
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ static int __gt_unpark(struct intel_wakeref *wf)

	intel_rc6_unpark(&gt->rc6);
	intel_rps_unpark(&gt->rps);
	i915_pmu_gt_unparked(i915);
	i915_pmu_gt_unparked(gt);
	intel_guc_busyness_unpark(gt);

	intel_gt_unpark_requests(gt);
@@ -109,7 +109,7 @@ static int __gt_park(struct intel_wakeref *wf)

	intel_guc_busyness_park(gt);
	i915_vma_parked(gt);
	i915_pmu_gt_parked(i915);
	i915_pmu_gt_parked(gt);
	intel_rps_park(&gt->rps);
	intel_rc6_park(&gt->rc6);

+8 −8
Original line number Diff line number Diff line
@@ -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();
}

@@ -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)
		return;

	spin_lock_irq(&pmu->lock);

	park_rc6(i915);
	park_rc6(gt);

	/*
	 * 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)
	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)
		return;
+5 −4
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
#include <uapi/drm/i915_drm.h>

struct drm_i915_private;
struct intel_gt;

/*
 * Non-engine events that we need to track enabled-disabled transition and
@@ -151,15 +152,15 @@ int i915_pmu_init(void);
void i915_pmu_exit(void);
void i915_pmu_register(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_unparked(struct drm_i915_private *i915);
void i915_pmu_gt_parked(struct intel_gt *gt);
void i915_pmu_gt_unparked(struct intel_gt *gt);
#else
static inline int i915_pmu_init(void) { return 0; }
static inline void i915_pmu_exit(void) {}
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_gt_parked(struct drm_i915_private *i915) {}
static inline void i915_pmu_gt_unparked(struct drm_i915_private *i915) {}
static inline void i915_pmu_gt_parked(struct intel_gt *gt) {}
static inline void i915_pmu_gt_unparked(struct intel_gt *gt) {}
#endif

#endif