aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/cpu.h9
-rw-r--r--include/linux/perf_event.h2
-rw-r--r--kernel/sched.c2
3 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index e287863ac053..2d9073883ea9 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -48,6 +48,15 @@ extern ssize_t arch_cpu_release(const char *, size_t);
48#endif 48#endif
49struct notifier_block; 49struct notifier_block;
50 50
51/*
52 * CPU notifier priorities.
53 */
54enum {
55 /* migration should happen before other stuff but after perf */
56 CPU_PRI_PERF = 20,
57 CPU_PRI_MIGRATION = 10,
58};
59
51#ifdef CONFIG_SMP 60#ifdef CONFIG_SMP
52/* Need to know about CPUs going up/down? */ 61/* Need to know about CPUs going up/down? */
53#if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE) 62#if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE)
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 5d0266d94985..469e03e96fe7 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -1068,7 +1068,7 @@ static inline void perf_event_disable(struct perf_event *event) { }
1068#define perf_cpu_notifier(fn) \ 1068#define perf_cpu_notifier(fn) \
1069do { \ 1069do { \
1070 static struct notifier_block fn##_nb __cpuinitdata = \ 1070 static struct notifier_block fn##_nb __cpuinitdata = \
1071 { .notifier_call = fn, .priority = 20 }; \ 1071 { .notifier_call = fn, .priority = CPU_PRI_PERF }; \
1072 fn(&fn##_nb, (unsigned long)CPU_UP_PREPARE, \ 1072 fn(&fn##_nb, (unsigned long)CPU_UP_PREPARE, \
1073 (void *)(unsigned long)smp_processor_id()); \ 1073 (void *)(unsigned long)smp_processor_id()); \
1074 fn(&fn##_nb, (unsigned long)CPU_STARTING, \ 1074 fn(&fn##_nb, (unsigned long)CPU_STARTING, \
diff --git a/kernel/sched.c b/kernel/sched.c
index f8b8996228dd..552faf8d358c 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -5801,7 +5801,7 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
5801 */ 5801 */
5802static struct notifier_block __cpuinitdata migration_notifier = { 5802static struct notifier_block __cpuinitdata migration_notifier = {
5803 .notifier_call = migration_call, 5803 .notifier_call = migration_call,
5804 .priority = 10 5804 .priority = CPU_PRI_MIGRATION,
5805}; 5805};
5806 5806
5807static int __init migration_init(void) 5807static int __init migration_init(void)