Perf: Support sw events across hotplug
When CPUs are hotplugged off and on, let the various
sw events continue after the hotplug.
Change-Id: Id1aaf30c459c9cf7c9c38967f9ccad56d4062fd3
Signed-off-by: Neil Leeder <nleeder@codeaurora.org>
diff --git a/arch/arm/mach-msm/perf_debug.c b/arch/arm/mach-msm/perf_debug.c
index d36b431..74678ae 100644
--- a/arch/arm/mach-msm/perf_debug.c
+++ b/arch/arm/mach-msm/perf_debug.c
@@ -33,6 +33,7 @@
"13 msm: perf: Add L2 support for tracecounters\n"
"14 Perf: keep events across hotplug\n"
"15 Perf: bring CPU online if needed when disabling irq\n"
+ "16 Perf: Support sw events across hotplug\n"
;
static ssize_t desc_read(struct file *fp, char __user *buf,
diff --git a/kernel/events/core.c b/kernel/events/core.c
index c9dc1ac..5ece9dd 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -5196,6 +5196,7 @@
.read = perf_swevent_read,
.event_idx = perf_swevent_event_idx,
+ .events_across_hotplug = 1,
};
#ifdef CONFIG_EVENT_TRACING
@@ -5290,6 +5291,7 @@
.read = perf_swevent_read,
.event_idx = perf_swevent_event_idx,
+ .events_across_hotplug = 1,
};
static inline void perf_tp_register(void)
@@ -5517,6 +5519,7 @@
.read = cpu_clock_event_read,
.event_idx = perf_swevent_event_idx,
+ .events_across_hotplug = 1,
};
/*
@@ -5597,6 +5600,7 @@
.read = task_clock_event_read,
.event_idx = perf_swevent_event_idx,
+ .events_across_hotplug = 1,
};
static void perf_pmu_nop_void(struct pmu *pmu)
diff --git a/kernel/events/hw_breakpoint.c b/kernel/events/hw_breakpoint.c
index bb38c4d..98e6903 100644
--- a/kernel/events/hw_breakpoint.c
+++ b/kernel/events/hw_breakpoint.c
@@ -635,6 +635,7 @@
.read = hw_breakpoint_pmu_read,
.event_idx = hw_breakpoint_event_idx,
+ .events_across_hotplug = 1,
};
int __init init_hw_breakpoint(void)