powerpc/perf: Never program book3s PMCs with values >= 0x80000000
commit7b9eab8f52499099d3b6351a7fd4277455666fa7
authorAnton Blanchard <anton@samba.org>
Wed, 28 May 2014 22:15:38 +0000 (29 08:15 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jul 2014 22:39:50 +0000 (17 15:39 -0700)
treef002a392de94a0f347aba0d0a164cc319e471e07
parent30bbd3940f341bfd836e3afcac424c5a9ae19115
powerpc/perf: Never program book3s PMCs with values >= 0x80000000

commit f56029410a13cae3652d1f34788045c40a13ffc7 upstream.

We are seeing a lot of PMU warnings on POWER8:

    Can't find PMC that caused IRQ

Looking closer, the active PMC is 0 at this point and we took a PMU
exception on the transition from negative to 0. Some versions of POWER8
have an issue where they edge detect and not level detect PMC overflows.

A number of places program the PMC with (0x80000000 - period_left),
where period_left can be negative. We can either fix all of these or
just ensure that period_left is always >= 1.

This patch takes the second option.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/perf/core-book3s.c