Skip to content

Commit 8ed0753

Browse files
committed
drm/i915/pmu: Make PMU sample array two-dimensional
No functional changes but we can remove some unsightly index computation and read/write functions if we convert the PMU sample array from a one-dimensional to a two-dimensional array. v2: Retain read/store helpers (Tvrtko) Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230524215629.97920-3-ashutosh.dixit@intel.com
1 parent ab12902 commit 8ed0753

2 files changed

Lines changed: 4 additions & 14 deletions

File tree

drivers/gpu/drm/i915/i915_pmu.c

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -191,31 +191,21 @@ static inline s64 ktime_since_raw(const ktime_t kt)
191191
return ktime_to_ns(ktime_sub(ktime_get_raw(), kt));
192192
}
193193

194-
static unsigned int
195-
__sample_idx(struct i915_pmu *pmu, unsigned int gt_id, int sample)
196-
{
197-
unsigned int idx = gt_id * __I915_NUM_PMU_SAMPLERS + sample;
198-
199-
GEM_BUG_ON(idx >= ARRAY_SIZE(pmu->sample));
200-
201-
return idx;
202-
}
203-
204194
static u64 read_sample(struct i915_pmu *pmu, unsigned int gt_id, int sample)
205195
{
206-
return pmu->sample[__sample_idx(pmu, gt_id, sample)].cur;
196+
return pmu->sample[gt_id][sample].cur;
207197
}
208198

209199
static void
210200
store_sample(struct i915_pmu *pmu, unsigned int gt_id, int sample, u64 val)
211201
{
212-
pmu->sample[__sample_idx(pmu, gt_id, sample)].cur = val;
202+
pmu->sample[gt_id][sample].cur = val;
213203
}
214204

215205
static void
216206
add_sample_mult(struct i915_pmu *pmu, unsigned int gt_id, int sample, u32 val, u32 mul)
217207
{
218-
pmu->sample[__sample_idx(pmu, gt_id, sample)].cur += mul_u32_u32(val, mul);
208+
pmu->sample[gt_id][sample].cur += mul_u32_u32(val, mul);
219209
}
220210

221211
static u64 get_rc6(struct intel_gt *gt)

drivers/gpu/drm/i915/i915_pmu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ struct i915_pmu {
127127
* Only global counters are held here, while the per-engine ones are in
128128
* struct intel_engine_cs.
129129
*/
130-
struct i915_pmu_sample sample[I915_PMU_MAX_GTS * __I915_NUM_PMU_SAMPLERS];
130+
struct i915_pmu_sample sample[I915_PMU_MAX_GTS][__I915_NUM_PMU_SAMPLERS];
131131
/**
132132
* @sleep_last: Last time GT parked for RC6 estimation.
133133
*/

0 commit comments

Comments
 (0)