Commit 1d5e2f63 authored by Dhananjay Ugwekar's avatar Dhananjay Ugwekar Committed by Peter Zijlstra
Browse files

perf/x86/rapl: Remove the cpu_to_rapl_pmu() function



Prepare for the addition of RAPL core energy counter support.
Post which, one CPU might be mapped to more than one rapl_pmu
(package/die one and a core one). So, remove the cpu_to_rapl_pmu()
function.

Signed-off-by: default avatarDhananjay Ugwekar <Dhananjay.Ugwekar@amd.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarZhang Rui <rui.zhang@intel.com>
Tested-by: default avatarZhang Rui <rui.zhang@intel.com>
Link: https://lore.kernel.org/r/20241115060805.447565-4-Dhananjay.Ugwekar@amd.com
parent e4b44434
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -158,19 +158,13 @@ static struct perf_msr *rapl_msrs;
 */
static inline unsigned int get_rapl_pmu_idx(int cpu)
{
	return rapl_pmu_is_pkg_scope() ? topology_logical_package_id(cpu) :
					 topology_logical_die_id(cpu);
}

static inline struct rapl_pmu *cpu_to_rapl_pmu(unsigned int cpu)
{
	unsigned int rapl_pmu_idx = get_rapl_pmu_idx(cpu);

	/*
	 * The unsigned check also catches the '-1' return value for non
	 * existent mappings in the topology map.
	 * Returns unsigned int, which converts the '-1' return value
	 * (for non-existent mappings in topology map) to UINT_MAX, so
	 * the error check in the caller is simplified.
	 */
	return rapl_pmu_idx < rapl_pmus->nr_rapl_pmu ? rapl_pmus->pmus[rapl_pmu_idx] : NULL;
	return rapl_pmu_is_pkg_scope() ? topology_logical_package_id(cpu) :
					 topology_logical_die_id(cpu);
}

static inline u64 rapl_read_counter(struct perf_event *event)
@@ -350,6 +344,7 @@ static int rapl_pmu_event_init(struct perf_event *event)
	u64 cfg = event->attr.config & RAPL_EVENT_MASK;
	int bit, ret = 0;
	struct rapl_pmu *pmu;
	unsigned int rapl_pmu_idx;

	/* only look at RAPL events */
	if (event->attr.type != rapl_pmus->pmu.type)
@@ -376,8 +371,12 @@ static int rapl_pmu_event_init(struct perf_event *event)
	if (event->attr.sample_period) /* no sampling */
		return -EINVAL;

	rapl_pmu_idx = get_rapl_pmu_idx(event->cpu);
	if (rapl_pmu_idx >= rapl_pmus->nr_rapl_pmu)
		return -EINVAL;

	/* must be done before validate_group */
	pmu = cpu_to_rapl_pmu(event->cpu);
	pmu = rapl_pmus->pmus[rapl_pmu_idx];
	if (!pmu)
		return -EINVAL;
	event->pmu_private = pmu;