svn commit: r295516 - head/sys/arm64/arm64
Zbigniew Bodek
zbb at FreeBSD.org
Thu Feb 11 11:59:34 UTC 2016
Author: zbb
Date: Thu Feb 11 11:59:32 2016
New Revision: 295516
URL: https://svnweb.freebsd.org/changeset/base/295516
Log:
Call pmc_hook() correctly in the ARM64 interrupt handler
pmc_hook() was called only in case of the stray interrupt but should
rather be called on each interrupt. Move in to the arm_cpu_intr()
handler, out of the critical section too.
Reviewed by: br
Obtained from: Semihalf
Sponsored by: Cavium
Differential Revision: https://reviews.freebsd.org/D5161
Modified:
head/sys/arm64/arm64/intr_machdep.c
Modified: head/sys/arm64/arm64/intr_machdep.c
==============================================================================
--- head/sys/arm64/arm64/intr_machdep.c Thu Feb 11 11:58:27 2016 (r295515)
+++ head/sys/arm64/arm64/intr_machdep.c Thu Feb 11 11:59:32 2016 (r295516)
@@ -473,10 +473,6 @@ stray:
if (intr != NULL)
PIC_MASK(root_pic, intr->i_hw_irq);
-#ifdef HWPMC_HOOKS
- if (pmc_hook && (PCPU_GET(curthread)->td_pflags & TDP_CALLCHAIN))
- pmc_hook(PCPU_GET(curthread), PMC_FN_USER_CALLCHAIN, tf);
-#endif
}
void
@@ -486,6 +482,10 @@ arm_cpu_intr(struct trapframe *tf)
critical_enter();
PIC_DISPATCH(root_pic, tf);
critical_exit();
+#ifdef HWPMC_HOOKS
+ if (pmc_hook && (PCPU_GET(curthread)->td_pflags & TDP_CALLCHAIN))
+ pmc_hook(PCPU_GET(curthread), PMC_FN_USER_CALLCHAIN, tf);
+#endif
}
#ifdef SMP
More information about the svn-src-all
mailing list