On Thu, Jun 05, 2025, Sean Christopherson wrote: > On Tue, Apr 01, 2025, Paolo Bonzini wrote: > > Different planes can initialize their vCPUs separately, therefore there is > > no single online_vcpus value that can be used to test that a vCPU has > > indeed been fully initialized. > > > > Use the shiny new plane field instead, initializing it to an invalid value > > (-1) while the vCPU is visible in the xarray but may still disappear if > > the creation fails. > > Checking vcpu->plane _in addition_ to online_cpus seems way safer than checking > vcpu->plane _instead_ of online_cpus. Even if we end up checking only vcpu->plane, > I think that should be a separate patch. Alternatively, why not do the somewhat more obvious thing if making online_vcpus per-plane? Oh! Is it because vCPUs can be sparesly populated? E.g. give a 4-vCPU VM, plane1 could have vCPU0 and vCPU3, but not vCPU1 or or vCPU2? That's implicitly captured in the docs, but we should very explicitly call that out in the relevant changelogs (this one especially), so that the motivation for using vcpu->plane to detect validity is captured. E.g. even if that detail were explicitly stated in the docs, it would be easy to overlook when doing `git blame` a few years from now.