Source-Changes-HG archive

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

[src/netbsd-8]: src/sys Pull up following revision(s) via patch (requested by...



details:   https://anonhg.NetBSD.org/src/rev/905568185cb6
branches:  netbsd-8
changeset: 852300:905568185cb6
user:      martin <martin%NetBSD.org@localhost>
date:      Sat Mar 09 17:10:19 2019 +0000

description:
Pull up following revision(s) via patch (requested by nonaka in ticket #1210):

        sys/dev/hyperv/vmbusvar.h: revision 1.1
        sys/dev/hyperv/hvs.c: revision 1.1
        sys/dev/hyperv/if_hvn.c: revision 1.1
        sys/dev/hyperv/vmbusic.c: revision 1.1
        sys/arch/x86/x86/lapic.c: revision 1.69
        sys/arch/x86/isa/clock.c: revision 1.34
        sys/arch/x86/include/intrdefs.h: revision 1.22
        sys/arch/i386/conf/GENERIC: revision 1.1201
        sys/arch/x86/x86/hyperv.c: revision 1.1
        sys/arch/x86/include/cpu.h: revision 1.105
        sys/arch/x86/x86/x86_machdep.c: revision 1.124
        sys/arch/i386/conf/GENERIC: revision 1.1203
        sys/arch/amd64/amd64/genassym.cf: revision 1.74
        sys/arch/i386/conf/GENERIC: revision 1.1204
        sys/arch/amd64/conf/GENERIC: revision 1.520
        sys/arch/x86/x86/hypervreg.h: revision 1.1
        sys/arch/amd64/amd64/vector.S: revision 1.69
        sys/dev/hyperv/hvshutdown.c: revision 1.1
        sys/dev/hyperv/hvshutdown.c: revision 1.2
        sys/dev/usb/if_urndisreg.h: file removal
        sys/arch/x86/x86/cpu.c: revision 1.167
        sys/arch/x86/conf/files.x86: revision 1.107
        sys/dev/usb/if_urndis.c: revision 1.20
        sys/dev/hyperv/vmbusicreg.h: revision 1.1
        sys/dev/hyperv/hvheartbeat.c: revision 1.1
        sys/dev/hyperv/vmbusicreg.h: revision 1.2
        sys/dev/hyperv/hvheartbeat.c: revision 1.2
        sys/dev/hyperv/files.hyperv: revision 1.1
        sys/dev/ic/rndisreg.h: revision 1.1
        sys/arch/i386/i386/genassym.cf: revision 1.111
        sys/dev/ic/rndisreg.h: revision 1.2
        sys/dev/hyperv/hyperv_common.c: revision 1.1
        sys/dev/hyperv/hvtimesync.c: revision 1.1
        sys/dev/hyperv/hypervreg.h: revision 1.1
        sys/dev/hyperv/hvtimesync.c: revision 1.2
        sys/dev/hyperv/vmbusicvar.h: revision 1.1
        sys/dev/hyperv/if_hvnreg.h: revision 1.1
        sys/arch/x86/x86/lapic.c: revision 1.70
        sys/arch/amd64/amd64/vector.S: revision 1.70
        sys/dev/ic/ndisreg.h: revision 1.1
        sys/arch/amd64/conf/GENERIC: revision 1.516
        sys/dev/hyperv/hypervvar.h: revision 1.1
        sys/arch/amd64/conf/GENERIC: revision 1.518
        sys/arch/amd64/conf/GENERIC: revision 1.519
        sys/arch/i386/conf/files.i386: revision 1.400
        sys/dev/acpi/vmbus_acpi.c: revision 1.1
        sys/dev/hyperv/vmbus.c: revision 1.1
        sys/dev/hyperv/vmbus.c: revision 1.2
        sys/arch/x86/x86/intr.c: revision 1.144
        sys/arch/i386/i386/vector.S: revision 1.83
        sys/arch/amd64/conf/files.amd64: revision 1.112

separate RNDIS definitions from urndis(4) for use with Hyper-V NetVSC.

 -

Added Microsoft Hyper-V support.  It ported from OpenBSD and FreeBSD.
graphical console is not work on Gen.2 VM yet. To use the serial console,
enter "consdev com,0x3f8,115200" on efiboot.

 -

Add __diagused.

 -

PR/53984: Partial revert of modify lapic_calibrate_timer() in lapic.c r1.69.

 -

Update Hyper-V related drivers description.

 -

Remove unused definition.

 -

Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly
discussed on irc.
NFCI intended.

 -

commented out hvkvp entry.

 -

fix typo. pointed out by pgoyette@n.o.

 -

Use IDTVEC instead of NENTRY for handle_hyperv_hypercall.

 -

Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly
discussed on irc.

diffstat:

 sys/arch/amd64/amd64/genassym.cf |     4 +-
 sys/arch/amd64/amd64/vector.S    |    47 +-
 sys/arch/amd64/conf/GENERIC      |    14 +-
 sys/arch/amd64/conf/files.amd64  |     8 +-
 sys/arch/i386/conf/GENERIC       |    14 +-
 sys/arch/i386/conf/files.i386    |     8 +-
 sys/arch/i386/i386/genassym.cf   |     4 +-
 sys/arch/i386/i386/vector.S      |    48 +-
 sys/arch/x86/conf/files.x86      |     6 +-
 sys/arch/x86/include/cpu.h       |     4 +-
 sys/arch/x86/include/intrdefs.h  |    13 +-
 sys/arch/x86/isa/clock.c         |     8 +-
 sys/arch/x86/x86/cpu.c           |    16 +-
 sys/arch/x86/x86/hyperv.c        |   919 ++++++++++++++++
 sys/arch/x86/x86/hypervreg.h     |   155 ++
 sys/arch/x86/x86/intr.c          |    30 +-
 sys/arch/x86/x86/lapic.c         |    13 +-
 sys/arch/x86/x86/x86_machdep.c   |    35 +-
 sys/dev/acpi/vmbus_acpi.c        |   106 +
 sys/dev/hyperv/files.hyperv      |    34 +
 sys/dev/hyperv/hvheartbeat.c     |   198 +++
 sys/dev/hyperv/hvs.c             |  1139 ++++++++++++++++++++
 sys/dev/hyperv/hvshutdown.c      |   233 ++++
 sys/dev/hyperv/hvtimesync.c      |   338 ++++++
 sys/dev/hyperv/hyperv_common.c   |   183 +++
 sys/dev/hyperv/hypervreg.h       |   453 ++++++++
 sys/dev/hyperv/hypervvar.h       |   115 ++
 sys/dev/hyperv/if_hvn.c          |  1849 +++++++++++++++++++++++++++++++++
 sys/dev/hyperv/if_hvnreg.h       |   204 +++
 sys/dev/hyperv/vmbus.c           |  2112 ++++++++++++++++++++++++++++++++++++++
 sys/dev/hyperv/vmbusic.c         |   271 ++++
 sys/dev/hyperv/vmbusicreg.h      |   246 ++++
 sys/dev/hyperv/vmbusicvar.h      |    68 +
 sys/dev/hyperv/vmbusvar.h        |   273 ++++
 sys/dev/ic/ndisreg.h             |   435 +++++++
 sys/dev/ic/rndisreg.h            |   306 +++++
 sys/dev/usb/if_urndis.c          |   121 +-
 sys/dev/usb/if_urndisreg.h       |   307 -----
 38 files changed, 9953 insertions(+), 384 deletions(-)

diffs (truncated from 10993 to 300 lines):

diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/amd64/amd64/genassym.cf
--- a/sys/arch/amd64/amd64/genassym.cf  Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/amd64/amd64/genassym.cf  Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: genassym.cf,v 1.60.10.2 2018/03/22 16:59:03 martin Exp $
+#      $NetBSD: genassym.cf,v 1.60.10.3 2019/03/09 17:10:20 martin Exp $
 
 #
 # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -329,11 +329,13 @@
 
 define IPL_NONE                IPL_NONE
 define IPL_PREEMPT             IPL_PREEMPT
+define IPL_NET                 IPL_NET
 define IPL_CLOCK               IPL_CLOCK
 define IPL_HIGH                IPL_HIGH
 
 define LIR_IPI                 LIR_IPI
 define LIR_TIMER               LIR_TIMER
+define LIR_HV                  LIR_HV
 
 define SIR_NET                 SIR_NET
 define SIR_CLOCK               SIR_CLOCK
diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/amd64/amd64/vector.S
--- a/sys/arch/amd64/amd64/vector.S     Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/amd64/amd64/vector.S     Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: vector.S,v 1.49.2.3 2018/04/05 18:15:02 martin Exp $   */
+/*     $NetBSD: vector.S,v 1.49.2.4 2019/03/09 17:10:20 martin Exp $   */
 
 /*-
  * Copyright (c) 1998, 2007, 2008 The NetBSD Foundation, Inc.
@@ -84,6 +84,9 @@
 #include "ioapic.h"
 #include "lapic.h"
 #include "assym.h"
+#ifndef XEN
+#include "hyperv.h"
+#endif
 
        .text
 
@@ -260,6 +263,48 @@
 IDTVEC_END(intr_lapic_ltimer)
        TEXT_USER_END
 
+#if NHYPERV > 0
+       /*
+        * Hyper-V event channel upcall interrupt handler.
+        * Only used when the hypervisor supports direct vector callbacks.
+        */
+IDTVEC(recurse_hyperv_hypercall)
+       INTR_RECURSE_HWFRAME
+       pushq   $0
+       pushq   $T_ASTFLT
+       INTRENTRY
+       jmp     1f
+IDTVEC_END(recurse_hyperv_hypercall)
+IDTVEC(handle_hyperv_hypercall)
+       movl    CPUVAR(ILEVEL),%ebx
+       cmpl    $IPL_NET,%ebx
+       jae     2f
+       jmp     1f
+IDTVEC_END(handle_hyperv_hypercall)
+IDTVEC(resume_hyperv_hypercall)
+1:
+       incl    CPUVAR(IDEPTH)
+       movl    $IPL_NET,CPUVAR(ILEVEL)
+       sti
+       pushq   %rbx
+       movq    %rsp,%rsi
+       call    _C_LABEL(hyperv_hypercall_intr)
+       jmp     _C_LABEL(Xdoreti)
+2:
+       orl     $(1 << LIR_HV),CPUVAR(IPENDING)
+       INTRFASTEXIT
+IDTVEC_END(resume_hyperv_hypercall)
+
+       TEXT_USER_BEGIN
+IDTVEC(intr_hyperv_hypercall)
+       pushq   $0
+       pushq   $T_ASTFLT
+       INTRENTRY
+       jmp     _C_LABEL(Xhandle_hyperv_hypercall)
+IDTVEC_END(intr_hyperv_hypercall)
+       TEXT_USER_END
+#endif /* NHYPERV > 0 */
+
 #endif /* NLAPIC > 0 */
 
 #ifndef XEN
diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/amd64/conf/GENERIC
--- a/sys/arch/amd64/conf/GENERIC       Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/amd64/conf/GENERIC       Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC,v 1.459.2.13 2018/12/07 17:11:37 martin Exp $
+# $NetBSD: GENERIC,v 1.459.2.14 2019/03/09 17:10:20 martin Exp $
 #
 # GENERIC machine description file
 #
@@ -22,7 +22,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident         "GENERIC-$Revision: 1.459.2.13 $"
+#ident         "GENERIC-$Revision: 1.459.2.14 $"
 
 maxusers       64              # estimated number of users
 
@@ -83,6 +83,7 @@
 acpicpu*       at cpu?         # ACPI CPU (including frequency scaling)
 coretemp*      at cpu?         # Intel on-die thermal sensor
 est0           at cpu0         # Intel Enhanced SpeedStep (non-ACPI)
+hyperv0        at cpu0         # Microsoft Hyper-V
 #odcm0         at cpu0         # On-demand clock modulation
 powernow0      at cpu0         # AMD PowerNow! and Cool'n'Quiet (non-ACPI)
 vmt0           at cpu0         # VMware Tools
@@ -1056,6 +1057,15 @@
 viornd* at virtio?                     # Virtio entropy device
 vioscsi* at virtio?                    # Virtio SCSI device
 
+# Hyper-V devices
+vmbus*         at acpi?                # Hyper-V VMBus
+hvn*           at vmbus?               # Hyper-V NetVSC
+hvs*           at vmbus?               # Hyper-V StorVSC
+hvheartbeat*   at vmbus?               # Hyper-V Heartbeat Service
+hvshutdown*    at vmbus?               # Hyper-V Guest Shutdown Service
+hvtimesync*    at vmbus?               # Hyper-V Time Synchronization Service
+#hvkvp*                at vmbus?               # Hyper-V Data Exchange Service
+
 # Pull in optional local configuration
 cinclude "arch/amd64/conf/GENERIC.local"
 
diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/amd64/conf/files.amd64
--- a/sys/arch/amd64/conf/files.amd64   Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/amd64/conf/files.amd64   Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.amd64,v 1.88.8.4 2018/06/09 15:12:21 martin Exp $
+#      $NetBSD: files.amd64,v 1.88.8.5 2019/03/09 17:10:20 martin Exp $
 #
 # new style config file for amd64 architecture
 #
@@ -198,5 +198,11 @@
 include "dev/acpi/files.acpi"
 file   arch/amd64/acpi/acpi_wakeup_low.S       acpi
 
+# Microsoft Hyper-V
+include "dev/hyperv/files.hyperv"
+
+attach vmbus at acpinodebus with vmbus_acpi
+file   dev/acpi/vmbus_acpi.c                   vmbus_acpi
+
 include        "arch/amd64/conf/majors.amd64"
 endif #xen
diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/i386/conf/GENERIC
--- a/sys/arch/i386/conf/GENERIC        Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/i386/conf/GENERIC        Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: GENERIC,v 1.1156.2.13 2018/12/07 17:11:37 martin Exp $
+# $NetBSD: GENERIC,v 1.1156.2.14 2019/03/09 17:10:20 martin Exp $
 #
 # GENERIC machine description file
 #
@@ -22,7 +22,7 @@
 
 options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
 
-#ident         "GENERIC-$Revision: 1.1156.2.13 $"
+#ident         "GENERIC-$Revision: 1.1156.2.14 $"
 
 maxusers       64              # estimated number of users
 
@@ -38,6 +38,7 @@
 acpicpu*       at cpu?         # ACPI CPU (including frequency scaling)
 coretemp*      at cpu?         # Intel on-die thermal sensor
 est0           at cpu0         # Intel Enhanced SpeedStep (non-ACPI)
+hyperv0                at cpu0         # Microsoft Hyper-V
 #odcm0         at cpu0         # On-demand clock modulation
 #padlock0      at cpu0         # VIA PadLock
 powernow0      at cpu0         # AMD PowerNow! and Cool'n'Quiet (non-ACPI)
@@ -1436,6 +1437,15 @@
 viornd* at virtio?                     # Virtio entropy device
 vioscsi* at virtio?                    # Virtio SCSI device
 
+# Hyper-V devices
+vmbus*         at acpi?                # Hyper-V VMBus
+hvn*           at vmbus?               # Hyper-V NetVSC
+hvs*           at vmbus?               # Hyper-V StorVSC
+hvheartbeat*   at vmbus?               # Hyper-V Heartbeat Service
+hvshutdown*    at vmbus?               # Hyper-V Guest Shutdown Service
+hvtimesync*    at vmbus?               # Hyper-V Time Synchronization Service
+#hvkvp*                at vmbus?               # Hyper-V Data Exchange Service
+
 
 # Pull in optional local configuration
 cinclude "arch/i386/conf/GENERIC.local"
diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/i386/conf/files.i386
--- a/sys/arch/i386/conf/files.i386     Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/i386/conf/files.i386     Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.i386,v 1.378.6.3 2018/06/09 15:12:21 martin Exp $
+#      $NetBSD: files.i386,v 1.378.6.4 2019/03/09 17:10:20 martin Exp $
 #
 # new style config file for i386 architecture
 #
@@ -440,6 +440,12 @@
 include "dev/acpi/files.acpi"
 file   arch/i386/acpi/acpi_wakeup_low.S        acpi
 
+# Microsoft Hyper-V
+include "dev/hyperv/files.hyperv"
+
+attach vmbus at acpinodebus with vmbus_acpi
+file   dev/acpi/vmbus_acpi.c                   vmbus_acpi
+
 # Obsolete vesabios/vesafb flags
 obsolete       defflag opt_vesabios.h  VESABIOSVERBOSE
 obsolete       defparam opt_vesafb.h   VESAFB_WIDTH VESAFB_HEIGHT VESAFB_DEPTH
diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/i386/i386/genassym.cf
--- a/sys/arch/i386/i386/genassym.cf    Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/i386/i386/genassym.cf    Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: genassym.cf,v 1.99.10.1 2018/03/13 15:47:44 martin Exp $
+#      $NetBSD: genassym.cf,v 1.99.10.2 2019/03/09 17:10:21 martin Exp $
 
 #
 # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -358,6 +358,7 @@
 
 define IPL_NONE                IPL_NONE
 define IPL_PREEMPT             IPL_PREEMPT
+define IPL_NET                 IPL_NET
 define IPL_SCHED               IPL_SCHED
 define IPL_CLOCK               IPL_CLOCK
 define IPL_HIGH                IPL_HIGH
@@ -368,6 +369,7 @@
 
 define LIR_IPI                 LIR_IPI
 define LIR_TIMER               LIR_TIMER
+define LIR_HV                  LIR_HV
 
 define SIR_NET                 SIR_NET
 define SIR_CLOCK               SIR_CLOCK
diff -r c38fbc7f2bdf -r 905568185cb6 sys/arch/i386/i386/vector.S
--- a/sys/arch/i386/i386/vector.S       Thu Mar 07 17:43:03 2019 +0000
+++ b/sys/arch/i386/i386/vector.S       Sat Mar 09 17:10:19 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: vector.S,v 1.69.2.1 2018/04/05 18:15:02 martin Exp $   */
+/*     $NetBSD: vector.S,v 1.69.2.2 2019/03/09 17:10:21 martin Exp $   */
 
 /*
  * Copyright 2002 (c) Wasabi Systems, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.69.2.1 2018/04/05 18:15:02 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vector.S,v 1.69.2.2 2019/03/09 17:10:21 martin Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
@@ -87,6 +87,9 @@
 
 #include "ioapic.h"
 #include "lapic.h"
+#ifndef XEN
+#include "hyperv.h"
+#endif
 
 #include "assym.h"
 
@@ -323,6 +326,47 @@
        orl     $(1 << LIR_TIMER),CPUVAR(IPENDING)
        INTRFASTEXIT
 IDTVEC_END(resume_lapic_ltimer)
+
+#if NHYPERV > 0
+       /*
+        * Hyper-V event channel upcall interrupt handler.
+        * Only used when the hypervisor supports direct vector callbacks.
+        */
+IDTVEC(recurse_hyperv_hypercall)
+       pushfl
+       pushl   %cs
+       pushl   %esi
+       pushl   $0
+       pushl   $T_ASTFLT
+       INTRENTRY
+       jmp     1f
+IDTVEC_END(recurse_hyperv_hypercall)
+IDTVEC(intr_hyperv_hypercall)
+       pushl   $0
+       pushl   $T_ASTFLT
+       INTRENTRY
+       movl    CPUVAR(ILEVEL),%ebx
+       cmpl    $IPL_NET,%ebx
+       jae     2f
+       jmp     1f
+IDTVEC_END(intr_hyperv_hypercall)
+IDTVEC(resume_hyperv_hypercall)



Home | Main Index | Thread Index | Old Index