diff options
| -rw-r--r-- | kernel/perf_event.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index c502b18594cc..fb3031cf9f17 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
| @@ -5368,12 +5368,22 @@ int perf_event_init_task(struct task_struct *child) | |||
| 5368 | return ret; | 5368 | return ret; |
| 5369 | } | 5369 | } |
| 5370 | 5370 | ||
| 5371 | static void __init perf_event_init_all_cpus(void) | ||
| 5372 | { | ||
| 5373 | int cpu; | ||
| 5374 | struct perf_cpu_context *cpuctx; | ||
| 5375 | |||
| 5376 | for_each_possible_cpu(cpu) { | ||
| 5377 | cpuctx = &per_cpu(perf_cpu_context, cpu); | ||
| 5378 | __perf_event_init_context(&cpuctx->ctx, NULL); | ||
| 5379 | } | ||
| 5380 | } | ||
| 5381 | |||
| 5371 | static void __cpuinit perf_event_init_cpu(int cpu) | 5382 | static void __cpuinit perf_event_init_cpu(int cpu) |
| 5372 | { | 5383 | { |
| 5373 | struct perf_cpu_context *cpuctx; | 5384 | struct perf_cpu_context *cpuctx; |
| 5374 | 5385 | ||
| 5375 | cpuctx = &per_cpu(perf_cpu_context, cpu); | 5386 | cpuctx = &per_cpu(perf_cpu_context, cpu); |
| 5376 | __perf_event_init_context(&cpuctx->ctx, NULL); | ||
| 5377 | 5387 | ||
| 5378 | spin_lock(&perf_resource_lock); | 5388 | spin_lock(&perf_resource_lock); |
| 5379 | cpuctx->max_pertask = perf_max_events - perf_reserved_percpu; | 5389 | cpuctx->max_pertask = perf_max_events - perf_reserved_percpu; |
| @@ -5439,6 +5449,7 @@ static struct notifier_block __cpuinitdata perf_cpu_nb = { | |||
| 5439 | 5449 | ||
| 5440 | void __init perf_event_init(void) | 5450 | void __init perf_event_init(void) |
| 5441 | { | 5451 | { |
| 5452 | perf_event_init_all_cpus(); | ||
| 5442 | perf_cpu_notify(&perf_cpu_nb, (unsigned long)CPU_UP_PREPARE, | 5453 | perf_cpu_notify(&perf_cpu_nb, (unsigned long)CPU_UP_PREPARE, |
| 5443 | (void *)(long)smp_processor_id()); | 5454 | (void *)(long)smp_processor_id()); |
| 5444 | perf_cpu_notify(&perf_cpu_nb, (unsigned long)CPU_ONLINE, | 5455 | perf_cpu_notify(&perf_cpu_nb, (unsigned long)CPU_ONLINE, |
