svn commit: r300565 - head/sys/dev/hyperv/vmbus

Sepherosa Ziehau sephe at FreeBSD.org
Tue May 24 05:06:02 UTC 2016


Author: sephe
Date: Tue May 24 05:06:01 2016
New Revision: 300565
URL: https://svnweb.freebsd.org/changeset/base/300565

Log:
  hyperv/vmbus: Move vmbus interrupt counter into vmbus softc
  
  MFC after:	1 week
  Sponsored by:	Microsoft OSTC
  Differential Revision:	https://reviews.freebsd.org/D6497

Modified:
  head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
  head/sys/dev/hyperv/vmbus/vmbus_var.h

Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c
==============================================================================
--- head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c	Tue May 24 05:02:24 2016	(r300564)
+++ head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c	Tue May 24 05:06:01 2016	(r300565)
@@ -186,12 +186,11 @@ hv_vmbus_isr(struct trapframe *frame)
 	return (FILTER_HANDLED);
 }
 
-u_long *hv_vmbus_intr_cpu[MAXCPU];
-
 void
 hv_vector_handler(struct trapframe *trap_frame)
 {
-	int cpu;
+	struct vmbus_softc *sc = vmbus_get_softc();
+	int cpu = curcpu;
 
 	/*
 	 * Disable preemption.
@@ -201,8 +200,7 @@ hv_vector_handler(struct trapframe *trap
 	/*
 	 * Do a little interrupt counting.
 	 */
-	cpu = PCPU_GET(cpuid);
-	(*hv_vmbus_intr_cpu[cpu])++;
+	(*VMBUS_SC_PCPU_GET(sc, intr_cnt, cpu))++;
 
 	hv_vmbus_isr(trap_frame);
 
@@ -400,7 +398,7 @@ vmbus_bus_init(void)
 
 	CPU_FOREACH(j) {
 		snprintf(buf, sizeof(buf), "cpu%d:hyperv", j);
-		intrcnt_add(buf, &hv_vmbus_intr_cpu[j]);
+		intrcnt_add(buf, VMBUS_SC_PCPU_PTR(sc, intr_cnt, j));
 
 		for (i = 0; i < 2; i++)
 			setup_args.page_buffers[2 * j + i] = NULL;

Modified: head/sys/dev/hyperv/vmbus/vmbus_var.h
==============================================================================
--- head/sys/dev/hyperv/vmbus/vmbus_var.h	Tue May 24 05:02:24 2016	(r300564)
+++ head/sys/dev/hyperv/vmbus/vmbus_var.h	Tue May 24 05:06:01 2016	(r300565)
@@ -33,6 +33,7 @@
 
 struct vmbus_pcpu_data {
 	int		event_flag_cnt;	/* # of event flags */
+	u_long		*intr_cnt;
 } __aligned(CACHE_LINE_SIZE);
 
 struct vmbus_softc {


More information about the svn-src-head mailing list