arm64: perf: Disable PMU while processing counter overflows
authorSuzuki K Poulose <suzuki.poulose@arm.com>
Tue, 10 Jul 2018 08:58:03 +0000 (09:58 +0100)
committerSasha Levin <sashal@kernel.org>
Wed, 30 Jun 2021 12:48:56 +0000 (08:48 -0400)
commitd4f08316ad339b7c3b0fd55c2947f4c320ee32d0
treec0ccafaf0676349f74f7ddad62130509366f32fc
parentf43d0bcb387fdd87c516bd58ce4fd01c0f689035
arm64: perf: Disable PMU while processing counter overflows

commit 3cce50dfec4a5b0414c974190940f47dd32c6dee upstream.

The arm64 PMU updates the event counters and reprograms the
counters in the overflow IRQ handler without disabling the
PMU. This could potentially cause skews in for group counters,
where the overflowed counters may potentially loose some event
counts, while they are reprogrammed. To prevent this, disable
the PMU while we process the counter overflows and enable it
right back when we are done.

This patch also moves the PMU stop/start routines to avoid a
forward declaration.

Suggested-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Aman Priyadarshi <apeureka@amazon.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/kernel/perf_event.c