Commit e2d37cd2 authored by Yan, Zheng's avatar Yan, Zheng Committed by Ingo Molnar

perf: Allow the PMU driver to choose the CPU on which to install events

Allow the pmu->event_init callback to change event->cpu, so the PMU driver
can choose the CPU on which to install events.
Signed-off-by: default avatarZheng Yan <zheng.z.yan@intel.com>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1339741902-8449-4-git-send-email-zheng.z.yan@intel.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
parent fbfc623f
...@@ -6306,7 +6306,7 @@ SYSCALL_DEFINE5(perf_event_open, ...@@ -6306,7 +6306,7 @@ SYSCALL_DEFINE5(perf_event_open,
/* /*
* Get the target context (task or percpu): * Get the target context (task or percpu):
*/ */
ctx = find_get_context(pmu, task, cpu); ctx = find_get_context(pmu, task, event->cpu);
if (IS_ERR(ctx)) { if (IS_ERR(ctx)) {
err = PTR_ERR(ctx); err = PTR_ERR(ctx);
goto err_alloc; goto err_alloc;
...@@ -6379,16 +6379,16 @@ SYSCALL_DEFINE5(perf_event_open, ...@@ -6379,16 +6379,16 @@ SYSCALL_DEFINE5(perf_event_open,
mutex_lock(&ctx->mutex); mutex_lock(&ctx->mutex);
if (move_group) { if (move_group) {
perf_install_in_context(ctx, group_leader, cpu); perf_install_in_context(ctx, group_leader, event->cpu);
get_ctx(ctx); get_ctx(ctx);
list_for_each_entry(sibling, &group_leader->sibling_list, list_for_each_entry(sibling, &group_leader->sibling_list,
group_entry) { group_entry) {
perf_install_in_context(ctx, sibling, cpu); perf_install_in_context(ctx, sibling, event->cpu);
get_ctx(ctx); get_ctx(ctx);
} }
} }
perf_install_in_context(ctx, event, cpu); perf_install_in_context(ctx, event, event->cpu);
++ctx->generation; ++ctx->generation;
perf_unpin_context(ctx); perf_unpin_context(ctx);
mutex_unlock(&ctx->mutex); mutex_unlock(&ctx->mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment