freebsd-dev/sys/amd64/vmm
John Baldwin c0f35dbf19 vmm: Use a cpuset_t for vCPUs waiting for STARTUP IPIs.
Retire the boot_state member of struct vlapic and instead use a cpuset
in the VM to track vCPUs waiting for STARTUP IPIs.  INIT IPIs add
vCPUs to this set, and STARTUP IPIs remove vCPUs from the set.
STARTUP IPIs are only reported to userland for vCPUs that were removed
from the set.

In particular, this permits a subsequent change to allocate vCPUs on
demand when the vCPU may not be allocated until after a STARTUP IPI is
reported to userland.

Reviewed by:	corvink, markj
Differential Revision:	https://reviews.freebsd.org/D37173
2022-11-18 10:25:38 -08:00
..
amd vmm: Pass vcpu instead of vm and vcpuid to APIs used from CPU backends. 2022-11-18 10:25:37 -08:00
intel vmm vmx: Allocate vpids on demand as each vCPU is initialized. 2022-11-18 10:25:38 -08:00
io vmm: Use a cpuset_t for vCPUs waiting for STARTUP IPIs. 2022-11-18 10:25:38 -08:00
vmm_dev.c vmm devmem_mmap_single: Bump object reference under memsegs lock. 2022-11-18 10:25:38 -08:00
vmm_host.c
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
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
vmm_mem.h
vmm_snapshot.c bhyve: Drop volatile qualifiers from snapshot code 2022-11-11 10:02:26 -05:00
vmm_stat.c vmm stat: Add a special nelems constant for arrays sized by vCPU count. 2022-11-18 10:25:38 -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: Use a cpuset_t for vCPUs waiting for STARTUP IPIs. 2022-11-18 10:25:38 -08:00
x86.c vmm: Lookup vcpu pointers in vmmdev_ioctl. 2022-11-18 10:25:38 -08: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