git: 5c55abaf0851 - stable/13 - hwpmc: Reenable PME before reenabling counters.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 04 Jul 2022 18:09:34 UTC
The branch stable/13 has been updated by mav:
URL: https://cgit.FreeBSD.org/src/commit/?id=5c55abaf0851b3334d3c2a4b9e6cf1ededbac3c8
commit 5c55abaf0851b3334d3c2a4b9e6cf1ededbac3c8
Author: Alexander Motin <mav@FreeBSD.org>
AuthorDate: 2022-06-15 15:39:37 +0000
Commit: Alexander Motin <mav@FreeBSD.org>
CommitDate: 2022-07-04 17:48:10 +0000
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 7c2a5bcd2a1b..692d7fcd52d9 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);
}