diff options
author | Peter Zijlstra <peterz@infradead.org> | 2012-06-05 15:30:31 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-06-06 17:22:26 +0200 |
commit | 5a425294ee7d4ab5a374248e85838dfd450caf75 (patch) | |
tree | 107d193d769524b6cdb405073cba0b7f39208305 /arch/x86/kernel/cpu/perf_event.h | |
parent | 778b032d96909690c19d84f8d17c13be65ed6f8e (diff) | |
download | op-kernel-dev-5a425294ee7d4ab5a374248e85838dfd450caf75.zip op-kernel-dev-5a425294ee7d4ab5a374248e85838dfd450caf75.tar.gz |
perf/x86: Fix Intel shared extra MSR allocation
Zheng Yan reported that event group validation can wreck event state
when Intel extra_reg allocation changes event state.
Validation shouldn't change any persistent state. Cloning events in
validate_{event,group}() isn't really pretty either, so add a few
special cases to avoid modifying the event state.
The code is restructured to minimize the special case impact.
Reported-by: Zheng Yan <zheng.z.yan@linux.intel.com>
Acked-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1338903031.28282.175.camel@twins
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/cpu/perf_event.h')
-rw-r--r-- | arch/x86/kernel/cpu/perf_event.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/perf_event.h b/arch/x86/kernel/cpu/perf_event.h index 6638aaf..83794d8 100644 --- a/arch/x86/kernel/cpu/perf_event.h +++ b/arch/x86/kernel/cpu/perf_event.h @@ -117,6 +117,7 @@ struct cpu_hw_events { struct perf_event *event_list[X86_PMC_IDX_MAX]; /* in enabled order */ unsigned int group_flag; + int is_fake; /* * Intel DebugStore bits |