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 {
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to