From 5c55abaf0851b3334d3c2a4b9e6cf1ededbac3c8 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Wed, 15 Jun 2022 11:39:37 -0400 Subject: [PATCH] hwpmc: Reenable PME before reenabling counters. Doing otherwise may lead to lost interrupts, that in combination with hardware PMCs freezing may leave them frozen forever. It may also slightly improve profiling accuracy. MFC after: 2 weeks (cherry picked from commit f9e62419f6daf226a7116be2601842f8f07b1928) --- sys/dev/hwpmc/hwpmc_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/dev/hwpmc/hwpmc_core.c b/sys/dev/hwpmc/hwpmc_core.c index 7c2a5bcd2a1..692d7fcd52d 100644 --- a/sys/dev/hwpmc/hwpmc_core.c +++ b/sys/dev/hwpmc/hwpmc_core.c @@ -1208,6 +1208,9 @@ core2_intr(struct trapframe *tf) else counter_u64_add(pmc_stats.pm_intr_ignored, 1); + if (found_interrupt) + lapic_reenable_pmc(); + /* * Reenable all non-stalled PMCs. */ @@ -1228,9 +1231,6 @@ core2_intr(struct trapframe *tf) (uintmax_t) rdmsr(IA_GLOBAL_CTRL), (uintmax_t) rdmsr(IA_GLOBAL_STATUS)); - if (found_interrupt) - lapic_reenable_pmc(); - return (found_interrupt); } -- 2.45.0