projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0f29e57
)
perf/x86/intel/lbr: Optimize v4 LBR unfreezing
author
Andi Kleen
<
[email protected]
>
Sun, 10 May 2015 19:22:46 +0000
(12:22 -0700)
committer
Ingo Molnar
<
[email protected]
>
Tue, 4 Aug 2015 08:16:58 +0000
(10:16 +0200)
In Arch perfmon v4 the GLOBAL_STATUS reset automatically unfreezes
LBRs. So no need to do it manually in the LBR code. Add a check
to skip it.
v2: Move test up to beginning of function.
Signed-off-by: Andi Kleen <
[email protected]
>
Signed-off-by: Peter Zijlstra (Intel) <
[email protected]
>
Cc: Linus Torvalds <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc: Thomas Gleixner <
[email protected]
>
Cc:
[email protected]
Link:
http://lkml.kernel.org/r/
[email protected]
Signed-off-by: Ingo Molnar <
[email protected]
>
arch/x86/kernel/cpu/perf_event_intel_lbr.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/cpu/perf_event_intel_lbr.c
b/arch/x86/kernel/cpu/perf_event_intel_lbr.c
index 2fb57373beca72f5121458f0ec2cb9cdae751634..769a42f874dce3f0425164a2abb0a2d03d7ac9ba 100644
(file)
--- a/
arch/x86/kernel/cpu/perf_event_intel_lbr.c
+++ b/
arch/x86/kernel/cpu/perf_event_intel_lbr.c
@@
-140,6
+140,13
@@
static void __intel_pmu_lbr_enable(bool pmi)
struct cpu_hw_events *cpuc = this_cpu_ptr(&cpu_hw_events);
u64 debugctl, lbr_select = 0, orig_debugctl;
+ /*
+ * No need to unfreeze manually, as v4 can do that as part
+ * of the GLOBAL_STATUS ack.
+ */
+ if (pmi && x86_pmu.version >= 4)
+ return;
+
/*
* No need to reprogram LBR_SELECT in a PMI, as it
* did not change.