perf/powerpc: reset event hw state when adding it to the PMU

When adding an event to the PMU with PERF_EF_START the STOPPED and UPTODATE
flags need to be cleared in the hw.event status variable because they are
preventing the update of the event count on overflow interrupt.

Signed-off-by: Alexandru-Cezar Sardan <alexandru.sardan@freescale.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:
Alexandru-Cezar Sardan 2014-06-26 11:58:58 +03:00 committed by Scott Wood
parent 5db431285d
commit 0d7d9b3a45
1 changed files with 3 additions and 1 deletions

View File

@ -330,9 +330,11 @@ static int fsl_emb_pmu_add(struct perf_event *event, int flags)
} }
local64_set(&event->hw.prev_count, val); local64_set(&event->hw.prev_count, val);
if (!(flags & PERF_EF_START)) { if (unlikely(!(flags & PERF_EF_START))) {
event->hw.state = PERF_HES_STOPPED | PERF_HES_UPTODATE; event->hw.state = PERF_HES_STOPPED | PERF_HES_UPTODATE;
val = 0; val = 0;
} else {
event->hw.state &= ~(PERF_HES_STOPPED | PERF_HES_UPTODATE);
} }
write_pmc(i, val); write_pmc(i, val);