Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/bouyer-xenpvh]: src/sys/arch/xen Move xen_ipi.c to XENPV only.



details:   https://anonhg.NetBSD.org/src/rev/9564809932c3
branches:  bouyer-xenpvh
changeset: 1024987:9564809932c3
user:      bouyer <bouyer%NetBSD.org@localhost>
date:      Sun Apr 19 20:29:30 2020 +0000

description:
Move xen_ipi.c to XENPV only.
Make sure we don't need to send events to remote CPUs (outside of IPIs)

diffstat:

 sys/arch/xen/conf/files.xen           |  3 +--
 sys/arch/xen/conf/files.xen.pv        |  4 +++-
 sys/arch/xen/x86/hypervisor_machdep.c |  9 +++++++--
 sys/arch/xen/xen/evtchn.c             |  7 +++++--
 4 files changed, 16 insertions(+), 7 deletions(-)

diffs (120 lines):

diff -r 03c61b517048 -r 9564809932c3 sys/arch/xen/conf/files.xen
--- a/sys/arch/xen/conf/files.xen       Sun Apr 19 19:39:10 2020 +0000
+++ b/sys/arch/xen/conf/files.xen       Sun Apr 19 20:29:30 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.xen,v 1.180.2.4 2020/04/16 19:23:50 bouyer Exp $
+#      $NetBSD: files.xen,v 1.180.2.5 2020/04/19 20:29:30 bouyer Exp $
 
 defflag        opt_xen.h                       XEN XENPVH XENPVHVM
 
@@ -7,7 +7,6 @@
 file   arch/xen/xen/xen_machdep.c              xen
 file   arch/xen/xen/evtchn.c                   xen
 file   arch/xen/xen/xengnt.c                   xen
-file   arch/xen/x86/xen_ipi.c                  multiprocessor & xen
 file   arch/xen/x86/xen_mainbus.c              xen
 file   arch/xen/xen/xen_clock.c                xen
 
diff -r 03c61b517048 -r 9564809932c3 sys/arch/xen/conf/files.xen.pv
--- a/sys/arch/xen/conf/files.xen.pv    Sun Apr 19 19:39:10 2020 +0000
+++ b/sys/arch/xen/conf/files.xen.pv    Sun Apr 19 20:29:30 2020 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.xen.pv,v 1.1.2.2 2020/04/16 19:23:50 bouyer Exp $
+#      $NetBSD: files.xen.pv,v 1.1.2.3 2020/04/19 20:29:30 bouyer Exp $
 
 file   arch/xen/x86/autoconf.c         xenpv
 file   arch/xen/x86/x86_xpmap.c        xenpv
@@ -10,6 +10,8 @@
 file   arch/xen/x86/consinit.c         machdep & xenpv
 file   arch/xen/x86/pintr.c            machdep & dom0ops & xenpv
 
+file   arch/xen/x86/xen_ipi.c                  multiprocessor & xenpv
+
 #
 # System bus types
 #
diff -r 03c61b517048 -r 9564809932c3 sys/arch/xen/x86/hypervisor_machdep.c
--- a/sys/arch/xen/x86/hypervisor_machdep.c     Sun Apr 19 19:39:10 2020 +0000
+++ b/sys/arch/xen/x86/hypervisor_machdep.c     Sun Apr 19 20:29:30 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: hypervisor_machdep.c,v 1.36.8.4 2020/04/18 15:06:18 bouyer Exp $       */
+/*     $NetBSD: hypervisor_machdep.c,v 1.36.8.5 2020/04/19 20:29:30 bouyer Exp $       */
 
 /*
  *
@@ -54,7 +54,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hypervisor_machdep.c,v 1.36.8.4 2020/04/18 15:06:18 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hypervisor_machdep.c,v 1.36.8.5 2020/04/19 20:29:30 bouyer Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -291,6 +291,7 @@
 #endif
 }
 
+#if 0
 void
 hypervisor_send_event(struct cpu_info *ci, unsigned int ev)
 {
@@ -323,6 +324,7 @@
                }
        }
 }
+#endif
 
 void
 hypervisor_unmask_event(unsigned int ev)
@@ -422,6 +424,8 @@
        KASSERT(ci->ci_isources[sir] != NULL);
        ci->ci_isources[sir]->ipl_evt_mask1 |= 1UL << l1;
        ci->ci_isources[sir]->ipl_evt_mask2[l1] |= 1UL << l2;
+       KASSERT(ci == curcpu());
+#if 0
        if (__predict_false(ci != curcpu())) {
                if (xen_send_ipi(ci, XEN_IPI_HVCB)) {
                        panic("hypervisor_set_ipending: "
@@ -429,6 +433,7 @@
                            (int) ci->ci_cpuid, ci->ci_vcpuid);
                }
        }
+#endif
 }
 
 void
diff -r 03c61b517048 -r 9564809932c3 sys/arch/xen/xen/evtchn.c
--- a/sys/arch/xen/xen/evtchn.c Sun Apr 19 19:39:10 2020 +0000
+++ b/sys/arch/xen/xen/evtchn.c Sun Apr 19 20:29:30 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: evtchn.c,v 1.88.2.8 2020/04/19 19:39:11 bouyer Exp $   */
+/*     $NetBSD: evtchn.c,v 1.88.2.9 2020/04/19 20:29:30 bouyer Exp $   */
 
 /*
  * Copyright (c) 2006 Manuel Bouyer.
@@ -54,7 +54,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: evtchn.c,v 1.88.2.8 2020/04/19 19:39:11 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: evtchn.c,v 1.88.2.9 2020/04/19 20:29:30 bouyer Exp $");
 
 #include "opt_xen.h"
 #include "isa.h"
@@ -376,12 +376,15 @@
        mutex_spin_enter(&evtlock[evtch]);
        ih = evtsource[evtch]->ev_handlers;
        while (ih != NULL) {
+               KASSERT(ih->ih_cpu == ci);
+#if 0
                if (ih->ih_cpu != ci) {
                        hypervisor_send_event(ih->ih_cpu, evtch);
                        iplmask &= ~(1 << XEN_IPL2SIR(ih->ih_level));
                        ih = ih->ih_evt_next;
                        continue;
                }
+#endif
                if (ih->ih_level <= ilevel) {
 #ifdef IRQ_DEBUG
                if (evtch == IRQ_DEBUG)



Home | Main Index | Thread Index | Old Index