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