HomeFreeBSD

vmm: Use a cpuset_t for vCPUs waiting for STARTUP IPIs.

Description

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

Details

Provenance
jhbAuthored on Nov 18 2022, 6:05 PM
Reviewer
corvink
Differential Revision
D37173: vmm: Use a cpuset_t for vCPUs waiting for STARTUP IPIs.
Parents
rG223de44c9365: vmm devmem_mmap_single: Bump object reference under memsegs lock.
Branches
Unknown
Tags
Unknown