OSDN Git Service

powerpc/perf: Never program book3s PMCs with values >= 0x80000000
authorAnton Blanchard <anton@samba.org>
Wed, 28 May 2014 22:15:38 +0000 (08:15 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jul 2014 22:58:01 +0000 (15:58 -0700)
commit41fce400544ab94115749a55682954b9c9ecc5d7
treeeb1e27fe50220da9f1251db9159f4b7627c207b9
parent2ca3461b101b9657d448ddc219ef746e50ba6f97
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