opnsense-src/sys/dev/hyperv/vmbus
Wei Hu 4f8c634de0 arm64 Hyper-V: enable Hyper-V SMP for ARM64
Vmbus_synic_setup() is invoked via vmbus_intrhook -> vmbus_doattach
-> smp_rendezvous. On !EARLY_AP_STARTUP (e.g., aarch64), SMP isn't
functional in intrhooks and smp_rendezvous() will just call
vmbus_synic_setup() on the boot processor. There's nothing that will
initialize the pcpu data on every other AP.

To fix it we need to use SI_SUB_SMP for vmbus_doattach(). With this
patch the vmbus interrupt should work on all arm64 cpus on HyperV.

Reported by:	kevans
Reviewed by:	kevans, whu
Tested by:	Souradeep Chakrabarti <schakrabarti@microsoft.com>
Obtained from:	Souradeep Chakrabarti <schakrabarti@microsoft.com>
Sponsored by:	Microsoft
Differential Revision:	https://reviews.freebsd.org/D40279
2023-06-07 08:24:13 +00:00
..
aarch64 spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
amd64 Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
i386 arm64: Hyper-V: enablement for ARM64 in Hyper-V (Part 3, final) 2022-10-27 13:53:22 +00:00
x86 spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
hyperv.c arm64: Hyper-V: enablement for ARM64 in Hyper-V (Part 3, final) 2022-10-27 13:53:22 +00:00
hyperv_busdma.c Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
hyperv_common_reg.h Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
hyperv_var.h arm64: Hyper-V: enablement for ARM64 in Hyper-V (Part 3, final) 2022-10-27 13:53:22 +00:00
vmbus.c arm64 Hyper-V: enable Hyper-V SMP for ARM64 2023-06-07 08:24:13 +00:00
vmbus_br.c Fix i386 build for r361275 2020-05-20 13:51:27 +00:00
vmbus_brvar.h HyperV socket implementation for FreeBSD 2020-05-20 11:03:59 +00:00
vmbus_chan.c Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
vmbus_chanvar.h Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
vmbus_et.c arm64: Hyper-V: enablement for ARM64 in Hyper-V (Part 3, final) 2022-10-27 13:53:22 +00:00
vmbus_if.m hyperv/vmbus: Add DEVMETHOD to map cpu to event taskq. 2016-11-30 07:45:05 +00:00
vmbus_reg.h arm64: Hyper-V: enablement for ARM64 in Hyper-V (Part 3, final) 2022-10-27 13:53:22 +00:00
vmbus_res.c hyperv: Remove unused devclass arguments to DRIVER_MODULE. 2022-05-06 15:46:58 -07:00
vmbus_var.h Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00
vmbus_xact.c Switch to contigmalloc in the Hyper-V code 2023-06-06 10:50:59 +01:00