1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-01 08:27:59 +00:00
freebsd/sys/amd64/vmm
Mark Johnston b265a2e0d7 vmm: Fix AP startup compatibility for old bhyve executables
These changes unbreak AP startup when using a 13.1-RELEASE bhyve
executable with a newer kernel:
- Correct the destination mask for the VM_EXITCODE_IPI message generated
  by an INIT or STARTUP IPI in vlapic_icrlo_write_handler().
- Only initialize vlapics on active vCPUs.  13.1-RELEASE bhyve activates
  AP vCPUs only after the BSP starts them with an IPI, and vmm now
  allocates vcpu structures lazily, so the STARTUP handling in
  vm_handle_ipi() could trigger a page fault.
- Fix an off-by-one setting the vcpuid in a VM_EXITCODE_SPINUP_AP
  message.

Fixes:	7c326ab5bb ("vmm: don't lock a mtx in the icr_low write handler")
Reviewed by:	jhb, corvink
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D38446
2023-02-09 16:14:33 -05:00
..
amd vmm: avoid spurious rendezvous 2023-02-01 12:36:36 +01:00
intel vmm: avoid spurious rendezvous 2023-02-01 12:36:36 +01:00
io vmm: Fix AP startup compatibility for old bhyve executables 2023-02-09 16:14:33 -05:00
vmm_dev.c vmm: take exclusive mem_segs_lock when (un)assigning ppt dev 2023-01-20 10:03:59 +00:00
vmm_host.c Correct undesirable interaction between caching of %cr4 in bhyve and 2018-04-24 13:44:19 +00:00
vmm_host.h amd64: move GDT into PCPU area. 2019-11-12 15:51:47 +00:00
vmm_instruction_emul.c vmm: Use struct vcpu in the instruction emulation code. 2022-11-18 10:25:37 -08:00
vmm_ioport.c vmm: Lookup vcpu pointers in vmmdev_ioctl. 2022-11-18 10:25:38 -08:00
vmm_ioport.h vmm: Lookup vcpu pointers in vmmdev_ioctl. 2022-11-18 10:25:38 -08:00
vmm_ktr.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
vmm_lapic.c vmm: Lookup vcpu pointers in vmmdev_ioctl. 2022-11-18 10:25:38 -08:00
vmm_lapic.h vmm: Lookup vcpu pointers in vmmdev_ioctl. 2022-11-18 10:25:38 -08:00
vmm_mem.c sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
vmm_mem.h sys/amd64: further adoption of SPDX licensing ID tags. 2017-11-27 15:03:07 +00:00
vmm_snapshot.c bhyve: Drop volatile qualifiers from snapshot code 2022-11-11 10:02:26 -05:00
vmm_stat.c vmm: Convert VM_MAXCPU into a loader tunable hw.vmm.maxcpu. 2022-11-18 10:25:39 -08:00
vmm_stat.h vmm stat: Add a special nelems constant for arrays sized by vCPU count. 2022-11-18 10:25:38 -08:00
vmm_util.c Convert vmm_ops calls to IFUNC 2020-11-28 01:16:59 +00:00
vmm_util.h Convert vmm_ops calls to IFUNC 2020-11-28 01:16:59 +00:00
vmm.c vmm: Remove an unneeded initialization of "retu" 2023-02-09 16:14:33 -05:00
x86.c vmm: purge EOL release compatibility 2023-02-04 09:13:10 -07:00
x86.h vmm: Pass vcpu instead of vm and vcpuid to APIs used from CPU backends. 2022-11-18 10:25:37 -08:00