Skip to content

Commit 0f29e57

Browse files
Andi KleenIngo Molnar
authored andcommitted
perf/x86/intel: Move PMU ACK to after LBR read
With Arch Perfmon v4 the PMU ack unfreezes the LBRs. So we need to do the PMU ack after the LBR reading, otherwise the LBRs would be polluted by the PMI handler. This is a minimal change. In principle the ACK could be moved much later. Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: eranian@google.com Link: http://lkml.kernel.org/r/1431285767-27027-10-git-send-email-andi@firstfloor.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent d8020be commit 0f29e57

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/x86/kernel/cpu/perf_event_intel.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1594,6 +1594,7 @@ static int intel_pmu_handle_irq(struct pt_regs *regs)
15941594

15951595
loops = 0;
15961596
again:
1597+
intel_pmu_lbr_read();
15971598
intel_pmu_ack_status(status);
15981599
if (++loops > 100) {
15991600
static bool warned = false;
@@ -1608,7 +1609,6 @@ static int intel_pmu_handle_irq(struct pt_regs *regs)
16081609

16091610
inc_irq_stat(apic_perf_irqs);
16101611

1611-
intel_pmu_lbr_read();
16121612

16131613
/*
16141614
* Ignore a range of extra bits in status that do not indicate

0 commit comments

Comments
 (0)