ARM: 6071/1: perf-events: allow modules to query the number of hardware counters
authorWill Deacon <will.deacon@arm.com>
Fri, 30 Apr 2010 10:34:26 +0000 (11:34 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 17 May 2010 10:53:58 +0000 (11:53 +0100)
For OProfile to initialise oprofilefs correctly, it needs to know
the number of counters it can represent.

This patch adds a function to the ARM perf-events backend to return
the number of hardware counters available for the current PMU.

Cc: Jamie Iles <jamie.iles@picochip.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/perf_event.h
arch/arm/kernel/perf_event.c

index fa4b32625d37d65ae9fb8f1144c6ad4f0818106b..48837e6d888722dc96f594247a80026bf9b75e29 100644 (file)
@@ -42,4 +42,7 @@ enum arm_perf_pmu_ids {
 extern enum arm_perf_pmu_ids
 armpmu_get_pmu_id(void);
 
+extern int
+armpmu_get_max_events(void);
+
 #endif /* __ARM_PERF_EVENT_H__ */
index 381f1211233eddbad33d20ae4fcd9a74d06ddafa..c45768614c8aae8cb794cee41b5da85cc7136a2e 100644 (file)
@@ -111,6 +111,18 @@ armpmu_get_pmu_id(void)
 }
 EXPORT_SYMBOL_GPL(armpmu_get_pmu_id);
 
+int
+armpmu_get_max_events(void)
+{
+       int max_events = 0;
+
+       if (armpmu != NULL)
+               max_events = armpmu->num_events;
+
+       return max_events;
+}
+EXPORT_SYMBOL_GPL(armpmu_get_max_events);
+
 #define HW_OP_UNSUPPORTED              0xFFFF
 
 #define C(_x) \